Hacker News new | past | comments | ask | show | jobs | submit login

> Programming COULD use a lot of simplification

I disagree, actually. There are plenty of languages, and even visual programming (via flow-diagrams, like Unreal Engine's "Blueprint" and Blender's shader flow diagrams), for those who just want to play around. For people who want to write a quick and dirty script, languages like python make it very easy already (relative to what they actually do).

> Programming COULD use [...] removal of barriers

Absolutely agree with this, though. There's an unnecessary elitism in many places that really needs to go..

> Development is sometimes hard and requires hard work to do right by people.

This is *so* important for these people to understand. There are languages and domains where the "elitism" is fully justified. If someone decides they want to write a high performance, easy to use, cross platform native application and complain about C++ or Rust being too complicated, then they should find an easier job. There is justified and unjustified elitism, and there are domains which could use, if anything, even more "complication" and more specifications, more "barriers" to ensure higher quality.




And yet... when Flash provided a simple, easy, way for people to get into coding using a GUI, there was an explosion of creativity.

Flash was terrible for all sorts of other reasons. But it did demonstrate that there is a class of incredibly creative people out there who can create amazing things, but not on the command line, and not using the tools currently available.

How do we get them doing that again?


Shut down YouTube.

I'm serious. I don't think there can be another "explosion of creativity" of the (relative) magnitude of Flash, because people now express themselves by recording videos. It's both easier and more social than making interactive software, even with Flash.


That doesn't make any sense. You don't inspire creativity-explosions by shutting down existing platforms, you do it by providing new affordances, which is what Flash did. And videos aren't even interactive! There's not even any comparison here.


Mass creativity follows the path of least resistance. Existence of YouTube - as a much easier and more social venue for self-expression - precludes mass popularity of Flash vids/games. To beat YouTube, a new affordance must be both easier and more socially appealing (because mass creativity tends to be done mostly to show off in front of friends/colleagues or romantic interests).


> because mass creativity tends to be done mostly to show off in front of friends/colleagues or romantic interests

?? What kind of bizarre red-pill nonsense is this? You think all those interactive Flash microsites were to impress girls? lol


I'd love to see someone create a Flash-like IDE for Javascript. ActionScript 3 was originally based off of ECMAscript if I remember correctly, so they're quite similar. What's missing from the web scene is probably mostly an entity component system.


Have you seen Processing or P5.js? I can’t really compare them to what Flash was like, but they’re both extremely accessible ways to make cool artwork, animations, etc. and a great way to learn coding by “making real things.” There’s also a big community and some very nice educational videos.

https://processing.org/

https://p5js.org/


Have you looked at the indie game market? Unity rules all right now (yes I know there are other engines but Unity is clearly the big dog). 1000's and 1000's of games developed or being developed. Steam has endless lists of them. A lot of the Flash games moved to Unity but the bar was raised as developers pushed to stand out. So now you Flash game isn't enough to stand out. You need something really special. A perfect example is Team Meat, they made Super Meat Boy and Super Meat Boy Forever. Half of that team started making Flash games and now it's indie games. That pattern has repeated itself over and over. The difference is the delivery platform, it's either mobile games or indie games or both often.


> There are languages and domains where the "elitism" is fully justified. If someone decides they want to write a high performance, easy to use, cross platform native application and complain about C++ or Rust being too complicated, then they should find an easier job.

I disagree. I follow a lot of game developers and you'd be hard pressed to say they don't do high-performance corss-platform native application development. They almost universally think C++ (and by extension Rust) are too complicated. They generally use C++ anyway because that's the industry standard, but they think there is definitely a conceptually less-complicated way to do things.

See: Jonathan Blow and Casey Muratori, for instance. The former is so sick of C++ he's making his own programming language, and the latter routinely complains about C++'s complexity and eschews all but the simplest features of it.


I'd argue that Rust is meaningfully simpler than C++. Mind you, it's also a fairly feature-rich language, but the complexity of C++ comes from decades of new features building up trying to supersede older features. C++ is several different languages by now depending on which feature set you use, but Rust is still just one language.

C++'s complexity is also a product of design choices like using templates to do both generics and metaprogramming, which in hindsight probably made things much harder than they needed to be. Rust has the benefit of being able to avoid decades of C++'s missteps.


I don't know much about Rust, because it doesn't seem to be the kind of language I want to use, so I can't personally speak to its complexity.

However, I do know that a lot of objections to it from the people I follow are around the borrow checker and both the friction and high[0] compile times it causes.

[0] to put that in context, Jon is frequently annoyed by the sub-second linking time incurred by LLVM because it is more than an order of magnitude longer than his largest program (~60k line game, IIRC) takes to compile.


Rust is like a modernized, more well-furnished (and more ergonomic and secure) C. That may sound like C++, but C++ is also the most complicated programming language in existence.

What makes it worse is that complication doesn't even exist for "good" technological reasons; it only exists for inertial, industrial reasons like compatibility with C and 1980s naivete -- both because of and in spite of it, since, like the other person said, even more complexity was bolted on to try to force new lessons without breaking backwards compatibility.

I used to love C++, since I thought its complexity was somehow, fundamentally necessary for a lang to be a "fancier C". Once I learned Rust and found out that was not true, I now hate C++ with a passion and can't wait until it completely displaces C++, which it should do ASAP[0]. :D

THAT SAID, some people (who are much better programmers than I am), say that C++ is the most expressively versatile language around, which is at least a "good" technological reason for its enduring existence. That's one I can't relate to, though, since the people who are saying that tend to be talking about very advanced, byzantine aspects of C++ that I never got to.

0: https://i.imgur.com/tbEohzT.png


The borrow-checker is a big source of frustration for beginners, because it forces you to write code differently, so it takes a lot of getting used to. But I don't think I would characterize it as a source of complexity in the language. Frankly, once you get used to it, it makes the language simpler, because it means you don't need to worry about shared mutability. The complexity that does exist tends to come from the zero-cost no-copy abstractions which rust is so fond of, or `unsafe`, which exposes you to a whole world of complexity which safe rust protects you from.


> The former is so sick of C++ he's making his own programming language,

This has happened pretty regularly for decades at this point, people hate on c++ and think they have the silver bullet approach to do things better. They spend a few years on it, and it fails to get much traction.

There is a network effect around c++, sure. But industry standards are there for reasons, and usually most of them have a core at least that is sensible. People keep coming back to c++ mostly because it works, and it turns out often if you start with a safer and cleaner language you get 80% of the way there much faster, but a lot of the 20% that's left over is performance related and you just can't get there no matter how hard you try.

So from a business point of view, the pain level of c++ (and associated costs) is somewhat known, but most other approaches trade that off against project risks people just aren't willing to take.

It's not inherently crazy, even in 2021 to start a new high performance project in c++. Obviously the exact requirements matter, but there is a subset of what it can do that we don't really have a obviously good replacement for. What would be crazy is starting a new project in it that doesn't really need any of thee things it's good at.


Yeah like there's 20 years of programming language research that studies exactly what this person is talking about.

Graphical programming languages, removing barriers to learning, etc. They've been chugging away for decades and visual programming, Blender, Blueprints, Scratch, etc are all we got out of it.

Does the article writer just think research doesn't exist? That CS sprouted from existence fully formed as a web browsing experience?


> Yeah like there's 20 years of programming language research that studies exactly what this person is talking about.

More like 50 years. :)


Relevant alan kay video from 1968 https://youtu.be/QQhVQ1UG6aM


That's impressive demo. But graphical representation literally have an extra dimension of problems. Namely navigation and serialization.


That is extremely impressive.

I'm not sure I want to code like that, but damn is it impressive.


Everything looks better on a vector display. :-)


Nothing in the article said “why hasn’t this been researched by the CS community?” The author was complaining about the state of things, and I don’t disagree. Programming is too hard. Error messages are always funky and assume expertise. And perhaps the node folks should better understand that beginners are often a target of their product and should find ways to make it more accessible to them.

Blueprints and Scratch are widely used and are important tools. Your comment sounds very dismissive, and if you meant to be, then I think you’re unaware of their impact and reach.

That said I don’t fully buy the author’s exact argument:

- node.js local install IS for a traditional programming environment on the CLI - you don’t need node built in when you have the browser - plenty of web IDEs exist that do as the author wishes… run node code in the browser while also editing it.


To be fair, c++ is too complicated, but that's an unrelated conversation, haha.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: