Hacker News new | ask | show | jobs
by flavio81 3289 days ago
While you persist on your belief system, a big, award-winning code controlled the NASA Deep Space One out in space for several days. Done 100% in a dynamic language.

A really big and complex program, is right now doing airline planning for over 800 companies, taking into account 4000 airports. To get an idea of the complexity look at this pdf:

http://www.demarcken.org/carl/papers/ITA-software-travel-com...

Both examples are software programmed in a dynamically typed language, Common Lisp.

And in that highly dynamic language, should any bug appear in production, it can be patched without stopping the system and of course without having to recompile the whole code. This bears repeating:

The system can be patched without stopping it and of course without having to recompile the whole code. That is, patched at runtime by correcting the offending function and re-attaching the new version of that function to the running system.

Try doing that with your favorite statically-typed language.

Your arguments are just common beliefs of the typical developer who is lacking more experience in the field of developing real-world systems. You are just regurgitating common myths, and in the process, calling "fucked up mentally" people probably wiser (more experienced and learned) than you.

And BTW,

If you think all dynamic languages are equal to javascript, which is not only dynamically typed but also weakly typed, then you need to try more dynamic languages. For example strongly typed dynamic languages.

I wish i had $1 everytime a developer mixes up "dynamic typing" with "weak typing"

1 comments

I know very well what the difference between weak vs dynamic typing is.

Weak typing allows automatic implicit conversion between types.

While I'm not a big fan of it, but I don't mind weak typing as much as I have a problem with dynamic typing. A statically typed language can be weakly typed.

Modern C++ for instance, can automatically convert from an object of types A to B, if the you provide a single-argument constructor for B that takes something of type A as an argument. It's sometimes neat as it leads to more succinct/cleaner code.

You talk about NASA using Common Lisp to update the program while it's running. But this feature has nothing to do with dynamic typing, and could be implemented/supported by a statically typed language. In fact the JVM had/has a feature that allows live updating methods/classes while the program is running.

Common LISP is a cool lanaguge with a lot of cool features. For instance, many LISPs' macro system are very cool, and we could implemented far cleaner / safer / more hygienic versions of them in dynamically typed languages with.

The only benefit of dynamically typed languages is that it makes the work of a prototype interpreter implementor far easier.