Scala would certainly have to build on that: "Scala is a variant of the 240G Java that tries to work around the problem by encoding pre-answered questionnaires directly into various types of ammunition. Unfortunately, the gun can detect lies and refuses operation when some of those answers do not match the actual situation."
HTML = construction paper, safety scissors, and glue, while you wear a dirty scuba mask.
CSS = A gluestick, glitter, and pipe cleaners, while you wear mittens.
The whole 2 vs. 3 is, if anything, an embarrassing interlude in getting to the fact that it's currently both amazing for beginners and one of the most versatile professional languages. Where it's not the best, it's often fighting "mainly good for this one problem area" tools and languages to a draw...while still being great for dozens of other problem areas.
Cracks about "really easy to use orbital death cannons being handed out to anyone who asks" aside - your best comparison is probably a trench knife. Simple, elegant, gets the job done whatever that job happens to be.
Python, as a weapon, is like a government grant on which you have written "shoot a gun". You just tell it what to do and it somehow happens ...
using 500x the resources any sane human being would have used. If you examine what it did to launch a bullet found it built and operated an international airport including 5 passenger terminals and then used a very elaborate looking runway to fire the bullet. The amount of empty space between the buildings looks very impressive and significant.
What you have to understand is that pythonic Python is largely a matter of invoking C libraries, and that Python only really runs at "interpreted" speed the first time you invoke the code.
It's no more slow than a shell script which serves to invoke grep and sed would be, because you're relying on the underlying optimized tools to execute the bits that would actually benefit from optimization. The microseconds it takes to switch from one to the other are almost never going to be a meaningful slice of the total execution time.
Instead of picking over the mostly insignificant delays that are left, Python has said "hey, let's optimize for readability & developer sanity instead — things that actually affect project outcomes." And then you go knock off 10 different issues you wouldn't have had time for, and you don't stab yourself in the eye with a fork while trying to make sense of the old code.
I do a bit of machine learning for work every now and then. I don't agree. Python is both really popular for machine learning and way too slow to let production stuff run in it.
The main issue, irrespective of language, is that the implementation of your final model is often a distinct step from the last output of your experimental tools. If you just take what it gives you and try to deploy that, it will often provide extremely suboptimal performance.
The methods for implementing your final model could involve raw Python, NumPy, the Python wrapper for an external library, writing and consuming custom C libs...it depends on the complexity of the hyperplanes.
But e.g. scikit-learn already wraps libsvm and liblinear. If your SVM (etc.) is slow, it's very unlikely to be because you used Python.
If you're e.g. trying to do Facebook-level heavy lifting, your experiences may vary. But again, that would be a challenge for any tools. The solution is to use sampling, parallelism, etc. - and to implement and optimize your final model as a separate step from designing it.
Although the source I've linked (below) claims it's impossible to encounter M1-thumb while loading, I have heard from reliable sources who've fired heavily abused Garands in ROTC (and hence saw all manner of abuse--besides WWII) that letting go of the bolt after forcing the clip into the firearm without removing your thumb will correctly strip the first round--and eat your thumb.
Edit: I do have to wonder if the experiences I was related some years ago was from the individual(s) in question loading a single round rather than the full clip.
The #1 screw case I knew about pertained to closing the bolt without loading the rifle, there is danger since it requires reaching past the bolt down to the follower that is locking it back. The trick is to hold your right hand in a rigid way so that while your thumb is depressing the follower, the bottom of your hand is holding the operating rod handle, keeping the bolt from flying forward. Depress the follower, then lift your entire hand as a unit up and out. Works like a charm.
Overall I rate the Garand as having better ergonomics than our following two service rifles, the M14 and M16/M4, it's for example very smooth in profile, very little to get caught while you're carrying it (that insight from someone who used it in Korea). If I had one today, and only that rifle, I would not consider myself to be under-equipped.
Hmmm, one other screw case it has in common with all weapons with the common pattern of an operating handle that is linked to the bolt, i.e. reciprocates with it, is that if you have a hang-fire---you press the trigger and the weapon goes click, but unlike the Java example ^_^ there is a round in the chamber---you'd best pull the handle back with your smaller fingers, palm upwards and under the bolt. Because if the round fires while you're doing this, if your palm is reversed and you're using your forefinger and on without taking precautions, the handle will smash into your thumb or the web of you hand between it and your palm. That'll do some serious damage....
C is not quite as good as the Garand is, although I'm not sure what I'd use as an alternative.
If anything, Molotov cocktails are some of the easiest weapons to improvise and are used quite often, particularly by underpowered guerrilla warriors. So if we're to take it literally, this would imply that Perl is a limited efficacy hack that a lot of people use.
C++, nunchucks? Ha, fair enough. But I'll continue to think of Go as my legion of tiny gophers under command, scurrying into battle or working relentlessly like Doozers.
It would be more accurate to say, "C++ is a set of nunchuks, powerful and impressive when wielded but takes many years of pain to master and often you probably wish you were using something else, because of the frequent accidental firing of the hidden pistols in the grips."
Yikes! I've worked for big tech companies you've heard of and Perl is all over the place and used in real production projects. We also regularly choose it for new projects.
Ok I know this one will be tough to keep rational, but this is an honest question - we've got Python and (especially) Ruby now, whats the Perl USP in your case?
Perl, Python, and Ruby are all pretty competent and on the same level. Given that Perl is chosen as a language the question isn’t “Justify the use of Perl to the exclusion of Python and Ruby.” It’s “What can Python or Ruby do that Perl can’t?”
Some common arguments between Python and Perl can be found at http://coosoft.wordpress.com/2013/02/24/the-perl-vs-python-d... (I would add the author should have expanded on Object Oriented in Perl more. While native OO in Perl is exceptionally basic, third party OO frameworks for the language exist such as Moose and Moo complete with introspection, roles, type constraint, triggers, attributes, etc, etc).
Perl is a powerful modern language, actively developed by a committed community. We’re just generally too busy doing things to blog about all the awesome stuff as much, so people’s perceptions of the language are often stuck in 1998.
Perl5's built-in OO is even more terrible, but exposed enough guts for Moo/Moose to be written, which is far, far superior.
Note that there's a MooseX rubygem and an Elk python package, because apparently there are people actively using ruby and python who also miss sensible OO :)
(I can elaborate on what I find superior but you might find it more instructive to see what people have ported than what I miss)
Perl has a reputation for being difficult to learn, and it does have a bit of a high learning curve compared to Python. However, once you learn Perl, you'll find it's a rather wonderful, expressive. and powerful language.
Is it "better" than Python or Ruby? No, just a different solution to many of the same problems. If we're being honest, most anything you can do in Ruby or Python can also be done in Perl.
My experience is that most engineers and devs over the age of ~30 know Perl front and back (if they script), so it's a natural choice. Fewer of these people (in my experience) are as familiar with Python/Ruby.
Perl continues to evolve and the Perl we wrote in 1998 isn't the same as the "Modern Perl" we write in 2014. There are great modern Perl web frameworks (Dancer, Mojolicious), real object-orientation via Moose, powerful exception handling via Try::Tiny, and a history of excellent database support.
Smaller Lisps, like Scheme, would be a barrel of generic Lego blocks.
Maybe every once in a while, when you load it just so, the trigger vanishes.
Apparently Randall has spent some time in this area before, Lisp is the lightsaber
C++ is like a nuclear weapon, that automatically disables any means you have of getting clear of the blast radius when you activate it.
Perl is like a leaky vat of nitroglycerin. It can be used as a weapon, but one wrong character and it kills you, most of your family, and half the neighborhood.
Java is a 500000 pound KalashnikovFactoryDesignerFactoryProducerSingleton "weapon". I hear there's actually a way to fire it, using 50000 programmers, however as 90% of those programmers commit suicide on any given friday nobody has ever seen it successfully fired. It helped quite a few large company's IT departments grow to impressive sizes. You know, on thursdays.
Scala is a way to fire the KalashnikovFactoryDesignerFactoryProducerSingleton with only 500 programmers, provided they have a deep working knowledge of ancient Egyptian algebra.
Go is like C, except the glue on the grenade has been replaced by handcuffs, there's a million grenades chained to you and you're required to cite the error checking oath which goes "if I check my errors I will not die". What happens next can only be described as "humor".
Bash is a row of unlabelled black buttons, which in order mean "coffee", "milk", "sugar", "lemonade", "global thermonuclear war", "diet lemonade" and "tea". I am not sure about that order. Neither is anyone else. Great lemonade though, you should try it.
Python is the government's version of a normal pistol. If you aim it at the person in front of you it will proceed to start an Apollo program, design a moon rocket, put a bullet in an orbit that will take it around the moon and then into it's target, which of course has long since killed you, taken your wallet, and left the scene.
There, I'm out.