Writing Software is Hard
m.signalvnoise.com
Writing Software is Hard
1–10 of 28 posts
Re: Writing Software is Hard
#2> C++ was created as a reaction to OOP being so difficult to do in C.
> Java as a reaction to memory management being difficult.
> C# as a reaction to Java not being concise enough.
> Javascript as a reaction to HTML not being dynamic enough.
> Go has a reaction to parallelism/concurrency being difficult.
> Rust as a reaction to what C++ has become.
And it goes on. There are many other languages too that you won't hear of that are created as a reaction to the status quo not being good enough either, but those ones I listed were backed by a big enough majority to become known. There is also the Lisp family and the functional paradigm too, which come round again and again in popularity.
All these languages/tools are the problem because no one is sitting back, and pro-actively realising that the entirety of these languages are no good. I am not saying this to start an argument, I have happily been a programmer for 15 years. But I recognise the problems, and they are the same problems, that will repeat over and over again ad-infinitum. I actually started writing down problems I've found and possible solutions and it's already reached over 30 pages.
What it boils down to is that all languages share the same flaw; they specify the what and the how, but never the why. Until we figure out how to encode the why, we will forever be going in circles.
Re: Writing Software is Hard
#3Writing software is hard yes, but I disagree with the author: I do blame the tools. Every language since C has been created as a reaction. What I mean by this is: > C++ was created as a reaction to OOP being so difficult to do in C. > Java as a reaction to memory management being difficult. > C# as a reaction to Java not being concise enough. > Javascript as a reaction to HTML not being dynamic enough. > Go has a rea…
Edit: Besides that, I agree, except one thing, I'd say C# is just MS's reaction that there is something awesome which does not belong to them.
Re: Writing Software is Hard
#4I do agree that tools (and process and ....) can make it less hard but that requires real, active participation. And I think that is even harder...
Re: Writing Software is Hard
#5I often see startups that rewrite their software one or more times just because they think that changing the tools is the key to success. They switch from PHP to Python, then from Python to JavaScript then from JavaScript to Go. It's so easy to say "We failed because X language, now we have to use Y".
The case when choosing a given language will give you a considerable advantage over choosing another one is very rare.
The worst thing is that we tend to say that languages suck while completely ignoring all the evidence of the opposite. How many times we have heard that PHP, C++ or JavaScript suck? How many amazing software projects have been built using these technologies?
On the other hand, look at the tools that self proclaim the best ones (lisp, haskell), how many big complex software projects have been built with them?
In the end they're just tools. Yes, they make a difference, but it's tiny compared with all the other pieces of the puzzle of how to build good software.
Re: Writing Software is Hard
#6Writing software is hard yes, but I disagree with the author: I do blame the tools. Every language since C has been created as a reaction. What I mean by this is: > C++ was created as a reaction to OOP being so difficult to do in C. > Java as a reaction to memory management being difficult. > C# as a reaction to Java not being concise enough. > Javascript as a reaction to HTML not being dynamic enough. > Go has a rea…
Re: Writing Software is Hard
#7Writing software is hard yes, but I disagree with the author: I do blame the tools. Every language since C has been created as a reaction. What I mean by this is: > C++ was created as a reaction to OOP being so difficult to do in C. > Java as a reaction to memory management being difficult. > C# as a reaction to Java not being concise enough. > Javascript as a reaction to HTML not being dynamic enough. > Go has a rea…
Wasn't C a reaction to assembly languages not being portable enough? Weren't assembly languages a reaction to machine code not being easy enough to work with? Wasn't machine code a reaction to punch-card systems being too inflexible? Etc. etc.
Re: Writing Software is Hard
#8Writing software is hard yes, but I disagree with the author: I do blame the tools. Every language since C has been created as a reaction. What I mean by this is: > C++ was created as a reaction to OOP being so difficult to do in C. > Java as a reaction to memory management being difficult. > C# as a reaction to Java not being concise enough. > Javascript as a reaction to HTML not being dynamic enough. > Go has a rea…
I disagree, the tooling around most ecosystems is fine you just need someone who knows what they are doing to help guide people in the right direction. Technical leadership is sorely lacking in our industry, and when you are solving business problems management cares about solving customer's issues on time rather that craftsmanship. Therefore people go down the path of doing just enough to get it done rather than doi…
I'd say these problems are technically difficult, just not deep. To clarify the difference:
(0) A difficult problem requires a lot of effort to solve. Example: Finding and fixing use-after-free errors in a buggy C program.
(1) A deep problem requires creativity and insight to solve. Example: Inventing and formalizing Rust's borrow checker rules.
Programmers are naturally attracted to deep problems, but not difficult ones. In fact, reducing difficult problems to deep ones is often considered progress, for good reason. After you come up with the right insight, solving a deep problem can be very easy. But solving a difficult problem will always be hard.