Software Developers - what technologies do you use?

The video was linked from the medium page:

https://www.destroyallsoftware.com/talks/wat

It is a great video.

1 Like

Ah nice thx! Really funny imo

I can recommend the University of Helsinki’s online courses for people wanting to learn to code. They start with the very basics, and by the end of the second course, you will even develop some UI components, even though it’s with Swing (Edit: Just checked, it‘s JavaFX now). I think the courses will teach a great foundation that can be translated to other programming languages. There are also many more assignments to program than texts to read, so you will get your hands dirty early.

Upon completion, you will also receive a certificate for each course, which is worth real study credit in the EU and is probably worth putting on your resume even if you are not an EU citizen.

Swing still exists? Swing UIs seemed outdated when I was learning Java around the year 2000.

1 Like

Swift is too proprietary for my liking.

I think it was Swing in the second course but i also remember using JavaFX to do the assignments :smile: Maybe they are updated by now

I started my life as a C++ programmer and moved on to just about every other compiled language over the course of my career. Now, I develop primarily using Javascript. Old Javascript (pre V8) was slow and very much a "toy"language.

Modern Javascript is a completely different beast. What most developers coming from another, compiled-language have trouble with is the transition from derivation-based object oriented design patterns to functional-programming. This causes much confusion in the development community as senior developers try to use their OOP experience with Javascript. This gives us nonsense like “classes” and Typescript and confuses developers about how to use Javascript. I think it sucks the functional-freedom out of the Javascript language.

Not having strong-typing is a good thing; not a bad thing in a language that has no runtime dependency-checks or strong type enforcement. Believing that it does is where developers get into trouble.

I have very little Javascript experience (I wrote a poi flower simulator for “fun”). The inconsistencies I see in the language discourage me from using it for anything serious.

Note: “fun” is in quotes because writing Javascript code was much less fun than I expected.

1 Like

Y’all jinxed it I got meetings next week to talk about copilot 


5 Likes

The 2024 StackOverflow developer survey results were just released.

JavaScript was the top programming language and Python was third:

https://survey.stackoverflow.co/2024/technology#1-programming-scripting-and-markup-languages

2 Likes

I guess that’s why next semesters course for me is a Java scripting course with a smattering of Python instead of the other way around. I’m gonna struggle with this lol.

JavaScript is a great language. I have developed using many different strongly-typed languages and Javascript. I find developing in Javascript a elegant, refreshing experience.

Just remember, Javascript is a functional language. It is not what I would call a traditional Object Oriented Paradigm (OOP) language that is based on derivative-object development with classes (C++, C#, Java
). JavaScript is functional. This means that you focus on how things function rather than how things are described.

I am always a bit confused that you hammer that JavaScript is functional. In general „functional“ is a programming paradigm which can applied in many languages. JavaScript is not a pure functional language as e.g. haskell and also I have never seen any project in js where people fully follow functional rules.
Sorry just curious what this “JavaScript is functional“ is all about?

Functional programming means that you focus on constructing the program using functions. This is very different from traditional Object Oriented Principals (OOP) development where you describe classes, methods and members; and derive new classes based on abstract-classes.

True, you can play syntax-games and simulate a simple-class in Javascript; but it will not be useful for OOP development like those described in the famous: “Design Patterns” book.

I have a couple of years Haskelll as also Object oriented languages under my belt. So that is clear so far.
In my experience from functional programming we should take away.

  • pure functions
  • Immutability
  • Stateless

These are all paradigms that work also in classes. As far as I know you can compile most languages including c# and Java today without having any class.
When it comes to stateless it is often very hard when you program UI related js since UI mostly has some kind of state.
Anyway I get roughly your point now but for me functional is not something that exists in conflict with objects or classes is more a good style that can be applied basically in every language.

One of the biggest misconceptions is that because a language is “Object Oriented” (OO); that Object Oriented Principles (OOP) apply. Everything in Javascript is an object. But I cannot derive a bunch of specific animals(dog, cat, cow) based on a virtual animal base-class and expect it to behave like a C++ object derived from a virtual base-class.

In Javascript I tell an object what function to call and where to call it. In an OOP language like Java or C++; the object itself knows what method to call based on its runtime type; and events.

Concepts like pure functions and immutability are Javascript best-practices for managing large code-base projects. These practices help to ensure that code only references the data needed to function and that this data is referenced in a consistent, reproducible way.

I am absolute your opinion on that and I do not see any misconception as you say.
I just say that a lot of these paradigms can be applied to any language.
Still true is that the paradigms work better with some languages as others same for what the software goals are.
As you say best-practices but not just for JavaScript but for most software projects.

Good point. Yes, I can implement a “Bridge” pattern in Javascript. It is just that in Javascript it would be an import of a set of mapping-functions instead of an object that is instanced and utilized to map one method to another.

Can confirm they still exist, we use swing and JFX at work. While it’s a little painful, it does make it easy to get a Full UI in a Java app pretty quickly.

3 Likes

I just saw an article that said the government security is discouraging the use of C/C++ for developers due to memory vulnerabilities. Even as a long-term goal; is that even practical?