4 ms·
This is great. I often miss the asm blocks of C, and think the benefits of mainly working in a higher level language and dropping down to a lower level languag
by zackmorris 10y ago
This is great. I often miss the asm blocks of C, and think the benefits of mainly working in a higher level language and dropping down to a lower level language for performance reasons have been lost in current times (mobile apps - I’m looking at you). We've also been distracted by very hands-on approaches to composition like language binding and writing interfaces which require so much boilerplate when the interpreter could do the heavy lifting for us.
Don't lecture me about performance when computers today are on the order of 1000 times faster than when I learned programming, and when even non-JIT scripting languages are 100-200 times slower than native code, we still have an order of magnitude speedup over native apps of the 80s. IMHO all that matters today is developer time, which is being squandered by languages like Swift and Rust that encourage a trees over forest view of productivity. My favorite non-mainstream languages are HyperTalk (AppleScript, ActionScript) and MATLAB (Octave) which provide tremendous leverage in few lines of code. Or better yet, code-less functional environments like Excel or FileMaker where you only drop down to a macro language when necessary. Or even better that than, declarative environments like the web that were built with relational data models and markup before AJAX opened the floodgates to callback hell and all the workarounds since (why the web lost WYSIWYG editing is a profound tragedy to me).
This turned into a rant but I simply don’t think code is supposed to be the way it is today. We’ve made a mistake. Yes, it has advanced computer science remarkably. But the opportunity cost of that is that we spend our days writing boilerplate and dealing with nondeterministic distributed computing issues informally rather than working at an appropriate level of abstraction.
- jestar_jokin 10y agoYes, yes, yes! I despair at the lack of options for Rapid Application Development. Web development is a problem that has been solved a million times over; why is it still so hard? (Sure, you could say browsers, scaling, and interactivity all need special consideration.) I believe there are certain personalities drawn to software development, who are very detail-oriented and love technical challenges, to the detriment of the end result - forest vs trees. Just look at people who want to make games and end up writing a game engine, vs people who jump into Flash and make do with the tools available. Personally, I would much prefer to just feed in a specification, or set of constraints, to a program, and have it spit out a working program. Program synthesis seems like an interesting area of research, but fairly basic at the moment. I imagine any useful synthesis will be domain-specific - generating a JSON web service/API will be quite different to writing a music visualizer.
- niftich 10y agoGreat points, but, rapid website development is a solved problem with templated builders. The problem comes when we need a more complex site/app than something Wix or Weebly or Wordpress can provide. Then in current practice, it's often back to square one, but it shouldn't be. We have opininated frameworks like Rails and Django that save a lot of time, but only cover the featureset of a CRUD app. There is a lack of opinionated frameworks that work at a higher level, but still below that of drag-and-drop templated website generators.