1. 1

    OOP will never go away because it is modeled after natural language.

    1. 3

      I just want to say that ruby isn’t done innovating yet. They just added static typing last year, which is a really big deal. For a language to start out as dynamic and gain optional static typing 20 years later is pretty cool. Also, it may not have a huge following now, but there have been a lot of newer languages created since ruby’s inception and ruby still has enough of a following to get pretty significant updates 20 years later.

      1. 4

        Blank das Keyboard I’ve been using this keyboard since 2016. I’ve never had a problem with it.

        1. 4

          yeah, I’m one of the programmers that does this. and I do it for everything. stored procedures c# javascript, everything. why? because my first and second attempts at solving a problem usually suck. Also lots of my code is public. I don’t want to show anyone my crappy intermediate code edits. I know I could use git amend, but I don’t like that either. Also, sometimes that intermediate code I write doesn’t compile. Sometimes I just want to see what it looks like in the IDE. Usually I solve this by copying the file into notepad++ and then playing around with the code in my IDE. If there was a plugin for vscode that would take a snapshot of a file and save it in another folder with a timestamp, I’d really appreciate it. A slider would be nice, but I’d be happy with that.

          1. 2

            Great software can be written just about any language. That is all.

            1. 2

              lol, and I’m over here still using legal pads for everything I do. Ruled paper is really easy to wireframe on. If you need more than just straight lines across the page, you can tear a page out, turn it 90 degrees and stuff it behind the page your designing on and bam! perfect wireframing grid!

              1. 5

                I think in many cases people hate Java, and by extension, hate OOP. Java being the first mainstream OO language, and still the poster child for OO in many minds, gives object-orientation a worse reputation than it would have if there were other OO languages (apart from C#) one could actually earn a living with.

                1. 17

                  Most people hate the working environments in which Java is used, with their power structure, deskilling of the worker, fordist approach to software development. Wait for Go to become the new Java and they will start projecting the same hate on Go, regardless of the merit of the language design or lack thereof.

                  You don’t hate OOP, you hate capitalism.

                    1. 9

                      I know, that’s why I mentioned Go specifically. Give it 10-15 years and all the fanboying will die out.

                      1. 4

                        Huh? I vehemently disagree with this. A language which deskills development enables novice programmers or non-progranmers to build software and systems for themselves with less time investment required. And given that personal software will never see the scale of usage or the sheer variety of deployment conditions that corporate SaaS often sees, personal software doesn’t need to be as correct as corporate SaaS either, so trading performance and correctness for functionality is a very realistic trade-off for personal-use software.

                        I find these language identity wars to be odious. You don’t like Go, that’s fine. Please don’t extrapolate systemic failures from your own personal likes and dislikes.

                      2. 5

                        That is true, but both Java and Go are made to solve the capitalist’s problem, not yours or mine.

                        1. 4

                          are they? this to me is up for debate. The deskilling that comes with these languages is a problem only under a specific mode of production. Being able to split the workload across a bigger group of people, having “protocols” to standardize development, enable less skilled people to write reliable software are not bad things in themselves. They are bad things in our specific economic system.

                      3. 2

                        I agree with this. Most of the programmers I know associate OOP with Java, C++, and C#. Also, using those languages, in the typical fashion results in code that is very OOP-like. It’s unfortunate though, because since about 2015 there have been alot of advances in all three of these languages. Lambda functions give an enormous amount of freedom when used instead of the typical constructs seen in older variations of Java, C++ and C#. The OOP languages have added some elements of functional programming in order to become more of a mixed language. This is a big deal. Mixed languages are becoming more popular now. Not all of OOP was a bad idea, an example of this is that Javascript, a mostly functional programming language has gotten a formal declaration for classes in recent years. In other words, they added class constructors INTO a mostly FP language. Personally I like OOP with first class functions. I’m happy with C# exactly how it is. I’ve used plenty of functional languages(haskell and clojure mostly), but I just prefer a blend of OOP and FP more than one or the other.

                        1. 2

                          It’s funny you mention 2015, since around that time, a as new batch of languages appear that aren’t as heavily invested in strict OOP appear. Java and C# only accepted multi-paradigmatic programming once it was proven to be non-threatening by newer languages.

                          Before that, it was regarded as superfluous and academic.

                      1. 2

                        To be fair Windows 10 does nearly the same thing. If you try to run an exe that isn’t code-signed, you get the “Windows Protected Your PC” alert. and it hides the “run anyway” button unless you click a “more info” link. Code signing is crazy expensive it’s like $500 for only 2 years. And even after buying the code signing cert, you still have to get a minimum number of installs before your exe is really trusted.

                        1. 3

                          I use two TOPS 100 sheet Legal Pads. One is for writing down everything as it happens and the other is for planning and listing what I’ve done. I’ve used this system my entire career, and it’s worked great. Sometimes I confuse one legal pad with the other, but other than that, this has been a great system. Also, since I’ve used this system my entire career, I can look back at my huge stack of legal pads for fun and see what I was working on 5 years ago. It’s kinda cool.

                          1. 2

                            Debugging stored procedures in MSSQL. It took a long time to set it up, and once I had it set up, I still couldn’t see the records in a table variable. If you want that your choices are save it to a new table in the database, or dump the table variable to xml and parse the string.
                            SET @XMLSTR = (SELECT * FROM @TABLE_VAR FOR XML AUTO)

                            1. 1

                              If the goal is to entice people to switch from twitter to mastodon, making the transition as easy as possible should be the main focus, and so large instances like these are fine. Let people just log in and toot. Let them try it out before getting on my instance and cluttering it up with dead accounts. If they like it and they want to learn more, they will make another account somewhere else. Does anyone have just one mastodon account? I don’t think so.

                              1. 8

                                Lisp is one of those things that I want to like, but every time I think I’ve found a way to actually like it and use it something stops me. Racket is the closest I’ve ever come to using a Lisp-y language for non-trivial code. I really enjoy the community, there are a ton of libraries available, and there’s even Typed Racket! But then I remember that someone else is going to have to read / modify / run my code and they’re likely to be annoyed that I used something relatively obscure, and I back off. So my theory is that Lisp is less popular than many people think it ought to be at time t simply because it was less popular than many people thought it ought to be at time t-1.

                                1. 2

                                  Yeah, this is my reasoning for not using Lisp/Clojure at work. I would feel bad for forcing it on someone that has no interest in learning it.

                                  1. 1

                                    I made the case at Racket Con a few years ago that the way to get adoption is to introduce it in tools that aren’t critical to production, which shows people the power, but allows them to slowly learn what makes it tick. I tried to introduce scribble for my team’s internal documentation afterwards, and failed because $X decided godoc was better. As the codebase is go, it was hard to argue against, even though most of the documentation is not a good fit for godoc.

                                    1. 2

                                      That’s a great idea, even if it didn’t work in that particular case. Now that I’m thinking about it, I could probably find a way to introduce scribble into my work, thanks!

                                  1. 1

                                    If you’re looking for boring and battle proven, I would suggest one of these languages: Java, C#, PHP, Python, Ruby, Go, Node.js or Erlang. I’ve had a hard time with web frameworks that aren’t in those languages. It’s not that I don’t understand them, just that I wasn’t as productive.

                                    1. 3

                                      Source code pro is an excellent font. Easily my favorite for programming c# and javascript. I especially like how 1 l and i and I are all distinctly different.

                                      1. 2

                                        This is some excellent “Code Golf”, but I would never write C# in this style. I’m pretty impressed that C# now has the functionality for pattern matching on tuple values though.

                                        1. 2

                                          This is such a great list of C++ questionable answers. I do agree it’s a little dated, but this is a great read! All the opinions about OO are pretty accurate too.

                                          Object-oriented programming is the best known way to develop complex systems. It was invented because customers kept demanding increasingly complex systems.

                                          1. 4

                                            Good code organization is pretty important. I’ve noticed junior devs getting lost in large codebases that are unorganized.

                                            1. 3

                                              Yeah, exploring a new tech stack is pretty fun, but for me at least, to do anything beyond a trivial programming project these days usually requires deep knowledge of a programming language/framework. Nowdays, to even entertain the idea of using a different language or framework I’d like it to be at least 5-7 years old with plenty of documentation and examples. so by the time I get around to it, and learn enough of it to be useful. It’s already the old tech stack. I think it’s mostly because I write complicated medical software though.

                                              1. 4

                                                So, there are a lot of options.

                                                If you need a desktop application with lots of forms, I would recommend Qt even though it’s a steep learning curve. I was able to figure it out within a few weeks and build a small but functional UI for a personal project. Also, if you know python, there are easier ways to use Qt.

                                                1. 2

                                                  C#. It’s expressive, has OO stuff if you like that, functional aspects, interop.

                                                  1. 1

                                                    C#

                                                    I’ve been programming for 10 years, and I just keep crawling back to .NET and C#. It’s just so hard to beat. The debugging experience is fantastic both for desktop and web and azure websites. Recently I had to build a desktop application and I was able to crank out a fairly complicated application that operates against a sql server database with over 100 tables - each with at least 20 fields. There are so many classes, I feel like doing this in javascript/typescript would’ve been a huge mess.

                                                    1. 2

                                                      When it comes to authoring desktop apps in particular, Visual Studio and Delphi are 100x better than everything else I’ve seen.