My JavaScript book is out! Don't miss the opportunity to upgrade your beginner or average dev skills.

Saturday, September 10, 2011

My New Programming Language

yeah, you read it correctly ... we all need another better programming language because everything we've done until now sucks.

What Sucks

  • the fact we don't learn by mistakes, which means all of us should instantly try to create a new "secretly open source programming language" so that the rest of the world can only endure it once it's out, rather than contribute to make it better/needed as it's happening since at least 5 years with JavaScript in all possible, and truly open, channels

  • the fact Java, .NET, and all others failed ... 'cause we are still looking for a new programming language in these days where C++ X11 has been approved while C never died

  • the fact we keep thinking that performances are possible only with compiled languages forgetting that better algorithms, better practices, better tools to develop and track leaks, memory consumptions, CPU/GPU cycles, can make any software fast enough or ...

  • ... the fact new standards are coming to help us with performances, as is for OpenCL, and new techniques are already available to speed up common tasks, as is for Statically Typed Collections

  • the fact we are blaming JavaScript because is the most used programming language and as is for "the most used whatever thing" out there more people will complain about it and even more people will enjoy it ( e.g. the unbelievable growing speed of node.js community and all latest server side JS related projects )

  • the fact if a programming language is part of the scripting group it's considered a toy regardless the fact any sort of application out of billions is working right now out there without major security, performances, or design problems

  • the fact that compiled programming language developers are not necessarily superior or more skilled than scripters ... the world of Software would be perfect otherwise and the Web as we know it, the good one, would not exist

  • the fact that if a programming language is appreciated and used by senior professionals as well as week end hobbyist must mean that language is weak and it needs to be substituted

  • the fact that experience is a key, and with a new language it will be completely lost and all sort of inevitable problems or solutions will not be instantly available to the community

  • the fact that if it's possible to translate this new fantastic language into JavaScript for backward compatibility, everything new this language will bring tomorrow was already possible today

As Summary

Looking forward for the revolution and looking forward to forget that OpenCL even existed.
Let's hope at least all Operating Systems companies will agree, let's hope it will be the universal language we have been dreaming about since ever ... let's hope ... and sorry for this surely not needed rant.
Update A must read post from BrendanEich who is apparently sharing my point of view with more technical reasons.
Alex Russel also on Google & the Future of JavaScript gives us something more about what's going on there, nice one.


Anonymous said...

Its not just any new programming language, most importantly its new programming language for the web.

Javascript is pretty awesome, but its not perfect and currently its the only option. I don't see how having an improved alternative programming language for the web is a bad idea.

Personally i would write in LOLCODE if it meant not having a garbage collector slow down graphics.

Andrea Giammarchi said...

if it's new programming language for the web don't repeat mistakes made when JavaScript was born.

don't create it internally, let real web developers contribute with decisions, what's needed, what's missing, and what's not necessary at all

realize that JS demonstrated his flexibility bringing modern Web we know without massive changes ... why is this language considered so problematic is a mysterious contradiction I'll never get

improve JS with "shimmable" features rather than start from the scratch.
Float32Array, Float64Array ... what's wrong with
var i = Int32(0)
where Int32 can be simply addressed as Number on global scope for old browsers while new browsers can understand realtime the type of the variable.

Improve JS adding struct-like descriptor for known structured *non-dynamic* objects so that engines can create native structs/classes behind the scene and most of daily basis code can have 300% boost.

This is why I posted about how much a new language is not needed if problems are performances or a syntax that made the Web, the server, the desktop app, easy to create, cross platform, and performant enough.

Any language will still have the security problem, security that increase the number of checks and internal calls too much, security that is slowing down because the Web security itself is broken.

With all these things to solve, improve, make better, the last thing I would do is create a new language, by my own, pretending it wll be standard tomorrow, and pretending everything will be perfect.

JS is not perfect, neither are other programming languages ... at least JS is extremely mature and it could be even better, rather than abandoned in favor of unknown syntax, tools, knowledge, etc etc

Andrea Giammarchi said...

P.S. also JavaScript is not for the web ... the new Ubuntu is using JS in its shell/console, Windows OS is using it for OS operations, many projects are using JS on the server, included database engines.

This is another problem, thinking about JS as web only language while it's proved its nature is so flexible and attractive that everything could be made in JS ... we just need a standard way to plugin native code when extreme performances are necessary, so that once again: we donÄt need another language.

Christopher said...

projects like CoffeeScript are good for JavaScript. It's true that having myriad interpreters slows language-level innovations. JavaScript is designed by committee, which essentially means that Microsoft or Yahoo! can say "no way" to something that other vendors like Mozilla or Adobe want. Essentially, it's a glacial political process that stifles improvements.

Seriously, how much better would JS be if it had bigints, or proper tail calls, or lexical "this", but we won't be able to get our hands on such things for some years to come.

In the meantime, CoffeeScript, and similar projects, can prove or disprove the merits of some things in the wild which can then be used to convince the ECMAScript committee to finally agree to add useful things to our favorite programming language.

Unknown said...

The programmers syndrome is to be programmers. pureDOM goes beyond insanity, needs documentation, such a great piece of lost mind you have, must clarify not your knowledge but your fantastic creation for the rest of us. The linear javascript stolen by crawford to ecma script, used years before its json with the same pursposes, because it was done for that by brendan eich, has taken your mind into a closure (term conceptually used in the wrong way by most programmers). But for a good reason, named pureDOM - Do not subestimate others you think do not underestand while hiding yourself from us. display yourself inline not block.