Hacker News new | ask | show | jobs
by stcredzero 3457 days ago
A few years ago it was "concurrency primitives are going to change your life

Those, plus the total package of tradeoffs in Golang did for me, in terms of implementing a game server. The whole package really is game changing for what I'm doing.

I am somewhat disappointed that we still feel the need to create entirely new toolchains and rewrite everything just to support what should be an incremental improvement.

There's something wrong with programming as an entire field. Don't other fields figure out ways of not reinventing the wheel?

But at a certain point, a lot of the reason for the hype is that it sells these solutions to newer developers that haven't had exposure to these concepts before.

Luminaries of our field have been lamenting for decades that programming forgets its own history and discoveries. Maybe we should make it de rigeur that people relate their "inventions" with past art? A lot of times, when I point out past art, I get met with instant open hostility from younger devs. Is it any wonder that programming has the attributes of a popular medium, not a field of engineering study?

If young coders want to be the future intelligentsia and harbingers of a better kind of programming, they need to foster a set of subcultural norms that best leverages collective knowledge. Programming has to become a field that remembers its own history and can learn from its mistakes.

4 comments

Maybe we should make it de rigeur that people relate their "inventions" with past art? A lot of times, when I point out past art, I get met with instant open hostility from younger devs. Is it any wonder that programming has the attributes of a popular medium, not a field of engineering study?

[...]

If young coders want to be the future intelligentsia and harbingers of a better kind of programming, they need to foster a set of subcultural norms that best leverages collective knowledge. Programming has to become a field that remembers its own history and can learn from its mistakes.

Graydon has consistently pointed out Rusts influences, indeed it is one of the reasons behind its name - ie. 'rusty old ideas'. But the influences of the creator are not enough. We need to promote the value of a historical perspective in our discourse, and so I I'm glad for your post. As a young developer I see it in my peers, but even sadder I also see it in my mentors and elders. So often there is two extremes of fervent excitement and lack of imagination that things could be better beyond ones own experience... both borne out of a lack of historical literacy.

That said, I don't mind reinventing the wheel in new ways - every time our wheels get better and better. But perhaps they could get better faster with fewer steps backwards with a little schooling on the foundations of our field.

That said, I don't mind reinventing the wheel in new ways - every time our wheels get better and better.

Not always. Pry debugging Ruby can be pretty awesome but still often leaves a lot to be desired compared to the VisualWorks Smalltalk debugger+environment. Then there's the One Laptop Per Child project. How many developers were trying to recreate things that already existed in Smalltalk? What if they could've freed up the developer power wasted in that wheel reinvention? Seriously, a lot of the advanced state saving/rollback features would've just come for free in Smalltalk.

>Not always. Pry debugging Ruby can be pretty awesome but still often leaves a lot to be desired compared to the VisualWorks Smalltalk debugger+environment. Then there's the One Laptop Per Child project. How many developers were trying to recreate things that already existed in Smalltalk?

How many Smalltalks were not closed source and with commercial IDEs and toolsets?

Squeak. That would've been enough. Smalltalk doesn't have an IDE in the traditional sense. The browser is a very small, thin app on top of the meta level and libraries.
Squeak only got viable a decade or so after the demise of commercial Smalltalks.
Back in those days we just bought our tools.
>"That said, I don't mind reinventing the wheel in new ways - every time our wheels get better and better. But perhaps they could get better faster with fewer steps backwards with a little schooling on the foundations of our field."

You may be interested in Graal/Truffle. One of the main aims is to make it a playground for experimenting with programming language design by reducing the work that goes into the underpinnings of these new languages. It's also meant to offer fairly decent performance.

https://medium.com/@octskyward/graal-truffle-134d8f28fb69#.n...

https://github.com/graalvm/truffle/blob/master/README.md

> There's something wrong with programming as an entire field

Look at all the research and prototyping in aviation. What's weird about programming is the amazing longevity of experimental ideas vs. heavily engineered products.

What's weird about programming is the amazing longevity of experimental ideas vs. heavily engineered products.

I like that very much! Also strange are the obscurity and outright myths surrounding heavily engineered products, followed by hyped reinvention.

>There's something wrong with programming as an entire field. Don't other fields figure out ways of not reinventing the wheel?

No. In fact even in the actual field of "wheel manufacturing", we have been re-inventing the wheel since for ever.

Those who don't like "re-inventing the wheel", would they rather use stone or wooden wheels for their cars? Or perhaps some of the crude early metal ones? Or they rather use the re-invented modern mix of alloys and plastic?

I would say it is a matter of quality in computing related degrees.

My university did a pretty good job teaching the ways of the past.

Sadly things seem to have changed for the worst in the last 20 years.

>My university did a pretty good job teaching the ways of the past.

That's because the past then was still modern.

Meaning teaching in the 90's the computing history of programming all the back to the early days.

Those majoring in systems programming had a good glimpse of OSes and programming languages.