253 karma · joined March 23, 2010
To translate their calculator tutorial (http://www.jetbrains.com/mps/docs/tutorial.html), in Common Lisp you would write a little macro "define-calculator" that then lets you write something like this:
(define-calculator java-and-php-hours
(input java-hours :label "Java hours")
(input php-hours :label "PHP hours")
(output (+ (* java-hours 10)
(* php-hours 5))
:label "Total"))
It would be based on some library (e.g. common-qt) that provides GUI primitives.Anyway, what kind of games does the author propose as better?
The article really seems to boil down to "I don't like them."
Wouldn't it be much easier to know beforehand that you will get the money? That's the way contract work works: someone has a problem, and he would like to get someone to solve it. You set your hours, haggle for a price, then go to work, deliver the solution, get paid. This is another way to get paid: find someone to make a contract with. I believe that it is the most important way for professional work.
This actually also works for "apps" and other self-initiated projects, through crowdfunding (e.g. through Indiegogo or Kickstarter).
However, even completely unfunded work needs not be financial waste, as you build a portfolio with which to gain contracts.
Do you believe that, really?
I can imagine that he has a point with Nu and Cocoa, but I have never worked in that ecosphere, so I cannot judge that.
His comments about REPLs look completely lunatic. Scheme and Lisp practically _invented_ the interactive REPL, and the parenthesis-based syntax makes the implementation of a REPL almost trivial (where does a unit of computation end in Python?). The claim "The s-expressions inherent in Lisp simply won't allow for that." is just bullshit.
So, dear Steven, talk about Clojure, but don't talk so dismissively about things you have no idea of.
It does not matter. In any case, to make it work, you need to change either the system or the population. I am quite sure that changing the population is not realistic at all.
Note that this leaves aside the concrete issue, in which I believe that the blame rests mostly on the system, which failed to understand the motivation of people. It does not matter, though (see above).
For one, while there are fields where user demand is the most important design basis, language design is not one of them. I believe that the design of a language should put ab initio thoughts at the beginning. That box "Ergonomic study and user survey" is actually "Old user habits". Nowadays, everyone seems to think that a useful language has to look like C. I think that this habit is a big impediment to innovation in this field.
This brings me to the next point of bother: semicola are not simply something to be dropped from otherwise C-like syntax. It is actually not dropped, but replaced by syntactic whitespace. That means that the programmer has the additional burden of determining whether he may put a newline at some point in code without it being interpreted as a statement terminator. I believe that syntactic whitespace---i.e. that the amount and type of whitespace are significant for the interpretation of the program---is a fundamentally flawed idea. Of course, C syntax is a complete mess, but dropping semicola is not a solution at all because the real problem sits much deeper.
For "intuitive" on the other hand, even the meaning of the word is not clear. I think that it means "aligns well with one's previous experiences". That, however, means that it is idiotic to say that "this UI is intuitive", just as it is idiotic to say that "this line is orthogonal"---you have to specify _to_what_ that line is orthogonal, and _to_whom_ the UI is intuitive.
For the programmer himself, even a "change into meta-workflow-hyper-mode" may seem intuitive, but for someone who never has used a computer, even the moving and clicking of a mouse is _not_ intuitive.
"Intuitive" is a completely subjective concept. A reviewer or user may say "this feels intutive to me", but the programmer or designer cannot sensibly use that word in any stronger way than "I hope that it feels intutive for a large part of my intended audience."
My reason for assuming that the "200" is not the electrical net output is that they write "MW", not "MWe". I have become quite cynical about the numbers on nameplates; they simply stick the biggest number on the thing that somehow appears in the calculation. Maybe I am wrong, and that is actually the peak electrical output.
However, that peak is only reached at noon in june. So, perhaps the actual yearly average output is 80 MW. Perhaps it is even 100 MW. It is still a big toy, and an expensive one at that.
For one, maintenance will _not_ be low. Wind turbines (and nothing else is used here) do have quite some maintenance costs, and additionally, you need to keep the greenhouse clean.
The main problem I see is the capacity. 200 MW peak capacity at 60% efficiency translates to 120 MW peak electric energy. If we assume 50% capacity factor (which I suspect is _very_ generous), we arrive at 60 MWe average output. You would need 15 of these to substitute for a single 1 GW nuclear plant.
Big toy.
I opened a twitter account when I noticed some people who had interesting things to say and who did this on twitter. My expectation was a little "news" feed. Then, while I was at it, I tweeted some things of my own, mostly expressions of political opinion and insights. I also retweeted some things I found interesting and worthy of attention. Suddenly, I had 3 followers. I did not expect that, but I thought that it was great that someone was listening to me. That did not change my expectations nor my behaviour.
Follower count? Who cares? I have 12 followers. Among them are a handful of people that I respect very much, and I feel quite honoured that they are willing to listen to what I say. This feels much more important to me than 100000 people following some sort of lolcats.