Not trying to offend anyone at all but this is a prescription for the symptom not the disease. M$FT marketing would loooove to create WindowsLite. In fact the did it already back in the day -- and the public fell for it. WindowsME/SE/CE anyone? What utter pieces of garbage.
The real problem is that they still have a moat (the Microsoft tax) on computer manufacturers which keeps their bloatware everywhere. It's one of the more brilliant things Gates pulled off and it's what allowed Ballmer's incompetence to go (almost) unnoticed for years.
The other moat which the author correctly points out is inertia. All of the Microsoft faithful that don't want to learn something new (and I don't blame them -- that's a big letting go and reinvestment).
And Apple could very well fall into the same hide-behind-the-moat behavior. It's what MBAs and beancounters gets you -- something Jobs was able to mostly avoid. But if we're being open-eyed about this, let's not put them on too high of a pedestal.
I'm not at all saying I know where things are going but I do think it involves a Unix philosophy at the core. I think WSL bought Microsoft valuable time but it's embarrassingly obvious that Win32 has just turned to crap and bloat.
The Linux/BSD APIs have their warts too but I'll take those warts any day.
I would like to ask a genuine question (not trying to provoke anyone!). Where is a good use case for Scheme these days (in any form?). I really love the idea of the language but I can't figure out where it really does a _better_ job that these things:
-- JavaScript/Typescript for in-browser or even some server-side stuff (e.g., NodeJS)
-- Python seems to be dominant for non-browser code that doesn't need to be fast (or which needs to call Python libraries)
-- C/C++/Rust/C# in the performance space
-- And then the workhorse Bash/ZSH etc for command-line script-fu
I am sincerely asking, what's the nice good fit for a Lisp these days? I know Emacs uses it as its internal language -- fair enough. But other than that.
Thanks and I did not mean to hurt anyone's feelings, I just really am curious.
Async is great... all those times a thread is waiting for even fractions of a second can now be easily put to use... using the same thread if needed (a big win for single threaded Python for example).
I think everyone here assumes that Capita actually tried to use the 113 million and so they are confused as to why the website is so poor. It’s much more likely that about 10 million was spent on the website and the balance lined the pockets of various people in government and at Capita.
Lisps are all very, very cool -- you basically get to build your own world. And the macros -- so powerful. But the parens! Not the number of them, as that is about the same as other langs, but the placement of them:
Sample factorial function:
(define fac
(lambda (n)
(if (= n 0)
1
(* n (fac (- n 1)))))) ; <<--- look at those parens!
And with Clojure, you don't have proper tail recursion, so you'll have to add some Clojure-only thing in there to prevent the above code from blowing up for large numbers.
There's really no getting around it -- Lisp, for many people, is just hard to parse. Consider:
def fac(n): n < 2 ? n : n * fac(n - 1)
Yay! No noise. But I agree, there are some cool things about Clojure.
I think some of the comments here are unfair to Crystal and the careful thought (and lots of work!) that has been put into it. Projects like this should not be so easily dismissed as "also-rans".
I read through the Crystal language docs (meaning just the syntax etc) and as a seasoned C++ and Python developer who is _constantly_ looking for something with better performance (than Python) yet much cleaner (than C++), I think Crystal has a lot going for it so far.
Any "great" language should be able to take a thought in a developer's head and easily allow 1) the concise expression of that thought, and 2) efficient evaluation of that thought. I mean, those things we probably would all agree on.
It saddens me to say this, but C++ is falling over as a result of it's own weight. It's become a language for experts. Perhaps more than any popular language, it can take a simple idea in a developer's head and turn it into pages of code. It's actually quite embarrassing. I won't go into that further; judge for yourself (and sorry if that comment offends anyone -- I love C++ and use it every day). But you just can't beat the speed... Well-crafted C++ _should_ exceed the speed of even C (Why? Because templates...). As an aside, it's disingenuous to put Java in the same speed category as C/C++... The "fast" Java programs out there are basically C with Java wrappers (ducks thrown tomatoes). And just like C++, Java is very noisy (but for different reasons).
Python as we all know sort of takes the opposite approach, with dynamic typing a design-as-you-go mentality. And boy what a success it has been, with a flourishing package ecosystem. There's lots of good things to say about Python, but it's f*cking slow as hell (Cython is a hack, Numba shows promise, but PyPy isn't much faster... I was excited about Pyston but don't know where that went). It's not the fault of Python that it's slow -- it's the price of such a wonderfully dynamic language.
So enter things like Crystal. And trust me -- it's definitely early days with this language. But I like the fact that the designers really seem to care about the things that (to most of us I think) matter.... Taking an idea in our brain and putting it (simply) down in code, and then having that code run quickly. Yay!
In this day and age where we are swamped with hype from all of these new languages, let's give praise where it's warranted -- to the people are out there that are trying to refine decades worth of thought and finally "get it right".
My hat is off to those people out there that are forging ahead with these types of projects. Don't mind the criticism -- keep it up and great job.
I followed the directions to the letter, and everything installed correctly on MacOS. When I tried the same on Linux, though, I got tons of the following errors on the build step (keep in mind I do have boost development libraries installed in /usr/include):
(Sorry about the formatting.... I tried <code>).
Anyway, TL/DR it cannot find boost.
$ ./node_modules/.bin/lerna run start --stream
lerna info version 2.8.0
@jpmorganchase/perspective: > @jpmorganchase/[email protected] start /home/dj/usr/src/perspective-clone/packages/perspective
@jpmorganchase/perspective: > npm run compile && (npm run perspective & npm run compile_test & npm run compile_node & wait)
@jpmorganchase/perspective: > @jpmorganchase/[email protected] compile /home/dj/usr/src/perspective-clone/packages/perspective
@jpmorganchase/perspective: > mkdir -p build build/wasm_async build/wasm_sync build/asmjs && (cd build/; emcmake cmake ../; emmake make -j8; cd ..)
@jpmorganchase/perspective: -- Configuring done
@jpmorganchase/perspective: -- Generating done
@jpmorganchase/perspective: -- Build files have been written to: /home/dj/usr/src/perspective-clone/packages/perspective/build
@jpmorganchase/perspective: Scanning dependencies of target psp
@jpmorganchase/perspective: [ 1%] Building CXX object CMakeFiles/psp.dir/src/cpp/base_impl_win.cpp.o
@jpmorganchase/perspective: [ 2%] Building CXX object CMakeFiles/psp.dir/src/cpp/arg_sort.cpp.o
@jpmorganchase/perspective: [ 4%] Building CXX object CMakeFiles/psp.dir/src/cpp/calc_agg_dtype.cpp.o
@jpmorganchase/perspective: [ 5%] Building CXX object CMakeFiles/psp.dir/src/cpp/aggspec.cpp.o
@jpmorganchase/perspective: [ 8%] Building CXX object CMakeFiles/psp.dir/src/cpp/aggregate.cpp.o
@jpmorganchase/perspective: [ 8%] Building CXX object CMakeFiles/psp.dir/src/cpp/base.cpp.o
@jpmorganchase/perspective: [ 9%] Building CXX object CMakeFiles/psp.dir/src/cpp/base_impl_linux.cpp.o
@jpmorganchase/perspective: [ 10%] Building CXX object CMakeFiles/psp.dir/src/cpp/build_filter.cpp.o
@jpmorganchase/perspective: [ 12%] Building CXX object CMakeFiles/psp.dir/src/cpp/column.cpp.o
@jpmorganchase/perspective: In file included from /home/dj/usr/src/perspective-clone/packages/perspective/src/cpp/calc_agg_dtype.cpp:11:
@jpmorganchase/perspective: In file included from /home/dj/usr/src/perspective-clone/packages/perspective/src/include/perspective/calc_agg_dtype.h:12:
@jpmorganchase/perspective: In file included from /home/dj/usr/src/perspective-clone/packages/perspective/src/include/perspective/schema.h:13:
@jpmorganchase/perspective: /home/dj/usr/src/perspective-clone/packages/perspective/src/include/perspective/base.h:29:10: fatal error: 'boost/unordered_map.hpp' file not found
@jpmorganchase/perspective: #include <boost/unordered_map.hpp>\n ^~~~~~~~~~~~~~~~~~~~~~~~~
</code>
A reasonable question, but the reality is that C++ is the ONLY choice for certain fields (basically anything where you need a high-performance "engine" under the hood). Finance, gaming, databases, etc.
I just skimmed the article, but if that was a crackhouse then wouldn't it be in a bad neighborhood? Then once their shiny new place becomes known to the local denizens, break-ins galore!