
The future is specific - olauzon
http://www.chris-granger.com/2012/05/21/the-future-is-specific/
======
kamaal
I don't mind if the future is specific. But its really wrong to say IDE's like
Eclipse don't do one specific task well.

Eclipse really makes Java programming very easy. And I can tell you minus
Eclipse programming in Java would be a very frustrating experience, given the
verbosity, configuration mess and XML's all over the place. Eclipse these days
is advanced enough to really blur the difference between and novice and a
expert Java programmers. So by any measure I would say eclipse already does
what light table aims to do. The only problem with eclipse is its too heavy,
chews a lot of memory and becomes very heavy as things go on.

What we expect from light table is really what things like Emacs and Vim
already are, plus what they miss. Which is modern GUI candy, easy
configuration, availability of packages, stuff like refactoring, bench
marking, auto complete and Intellisense easily available out of the box. Along
with evolution with modern needs and demands.

So that is why what we really needed was an Emacs + all that I mentioned.

I think it will be nice if at some point requirements are frozen for Light
table. Because things like this really slip into Second systems effect easily.

According to me Light Table must be Emacs for the Modern Generation. Anything
else, and it won't be impressive. A thin editor, extensible by lisp. All lisp
and other Emacs editor goodies but with all the modern demands.

We already have enough of other kind of IDE's.

~~~
stcredzero
_I would say eclipse already does what light table aims to do._

Can you come to a realization in the middle of an Eclipse debugging session,
get a great idea for making yourself more productive, take time to script
yourself a working and fully debugged extension of Eclipse and continue what
you were doing 20 minutes later?

I've done precisely this in Smalltalk on many occasions. You can script
something like a custom browser that shows you everything that uses function A
and also function B and has a reference to class C (and with complete
syntactic accuracy) in around that time.

I suspect that this kind of very small grained toolsmithing is common for
really good programmers in dynamic environments. The only problem is that it's
been harder than necessary to integrate that with the most commonly used
coding tool. (TextMate's ability to export selections to scripts is very nice,
but it can go farther than that. Emacs is very powerful for this, but not
everyone wants to script in elisp.)

It's not that Light Table is going to do something unprecedented. It's more
like what git did with quick access to diffs: a quantitative change can become
a qualitative change. Change the cost-benefit of toolsmithing, and you can use
it in new ways.

~~~
catenate
Acme supports constantly improving how you work in little ways, better than
tools with plugins or extension languages, by not having many features, and
providing a good interface to route text through shell pipelines.

For a simple example, Acme has no paragraph justifier, but it doesn't need
one, since fmt exists. To use it, highlight a paragraph of text with the left
mouse button, highlight a typed-in |fmt command with the middle mouse button,
and release the middle mouse button to run the paragraph through |fmt and
replace it in place.

With this I can leverage anything I can call from the command line, in any
language, to be part of my editor. No need to rewrite tools in the program's
specific extension language, whether Elisp or Smalltalk or Clojure.

As another example, since it's so easy to just run a shell command from Acme
(highlight the command text and middle-click it), I'm constantly customizing
pre-written shell commands to e.g. grep for lines in code (to the point of
creating indexes on the fly for files), and then right-clicking on grep -n
output to jump to a specific line in a file.

~~~
TeMPOraL
You still need to use the mouse. One of the biggest benefits of Vi(m)/Emacs
over everything else out there is that you don't need to use mouse for
anything. For example, to justify a paragraph in Emacs I highlight it (several
quick ways to do it with keyboard) and press C-u M-q. And you can do the
general "replace text by running a shell command over it" by highlighting the
text, and doing C-u M-| [shell-command-here].

The feature you're describing is awesome and useful, but I wouldn't be happy
to have to use mouse for it. Is there a way to invoke it from keyboard in
Acme?

------
lubutu
I don't quite understand what the difference is between Light Table's modes
and IDEs' plugins. Domain-specific components are exactly what make IDEs
'integrated'; without them they are generalised editors. But there is
absolutely no difference, as far as I can tell, between Light Table's new SQL
mode and an SQL IDE plugin.

I'm personally much more fond of the Unix 'tool approach', in which there are
no task-specific modes or plugins, but tools can still be composed ad hoc, as
in Plan 9's Acme.

~~~
ibdknox
Sure, anything can be built given enough time :) The difference is that those
modes can be built in a couple of hours with arbitrary UI and virtually any
interactions you can think of. It's hard for me to imagine being able to build
any of the things I showed in say Eclipse in any reasonable amount of time.

The idea is that Light Table will be built from the ground up to support very
dynamic environmental contexts in which you can place anything.

~~~
Arelius
But, instead compare that to Emacs, these are exactly the sorts of things
people can and do do in emacs in reasonable amounts of time. And exactly why
emacs has many great tools, from paredit-mode to SLIME.

The comparison to emacs isn't meant as a slight to LightTable either, but
please, let's not forgot the past when creating the future.

~~~
Rayne
I've seen a lot of cool stuff in Emacs, but I haven't seen anything nearly
this nice done in any reasonable amount of time. Emacs is a predominately
text-based thing. Light table is not.

With that said, wouldn't his "It's hard for me to imagine being able to build
anything I showed in say Eclipse in any reasonable amount of time" comment
also apply to Emacs?

~~~
Arelius
Generally speaking, it ends up much less graphical, which is the major failing
of Emacs in comparison to Lights Table, but if the functionality is what you
are looking for, instead of the pretties then Emacs has similar development
time. I'm not saying there is no value in Lights Table, but we should just be
clear on exactly what the advantages are.

------
mcrittenden
With all of the demos and information posted I still have trouble visualizing
this working for real-world applications. A specific example: in the
Python/Flask demo, functions were added to the current view as it was called.
How would this work in a more complex case with calls to many functions, each
which call many more functions (and so on), each belonging to different
objects, etc.? The view would quickly become a huge list of functions and code
blocks, most of which you probably don't need to see at any given time, and at
this point it's no more useful than plain old user-curated tabs.

That's just one example. The same conceptual problems pop up for stuff like
on-the-fly code execution (what if your code depends on user input or many SQL
queries or files that may or may not exist at that point), benchmark mode
(benchmarking a complex app is obviously a lot more complicated than just
running two code blocks side by side), etc.

I know this is just a demo and it's all very early in the process, and I'm not
saying that this should be a solved problem yet, but I just can't picture in
my head a way that this could ever be a solved problem as long as LightTable
remains somewhat similar to its current state.

~~~
ibdknox
Right now it goes at most one level deep into the call tree to prevent what
you're talking about. The thinking I've had so far is that you then have a few
options. You could go to one of the specific functions and say I want to see
everything, you could go to a specific token and bring up its definition, or
you could "focus" it to switch the starting point to that function. I think
any of those could work, but I haven't tested them yet :)

To your second point the normal caveats of a replish environment will apply to
any code execution stuff :) And the benchmarking mode was a simple example for
working against functions once you already know they're the bottleneck. In a
real application you probably need help getting there.

I agree and I think a big part of the job ahead is to understand how we can
ensure these sorts of experiences mesh and flow together when working on
something larger. Fortunately, Light Table itself provides a great project to
prove that on.

------
ibdknox
As promised, this is the second demo complete with python!

For those who can't use vimeo: <http://www.youtube.com/watch?v=osLReQSB9F0>

~~~
SudarshanP
It is so sad that Vimeo is blocked by many Indian ISPs for silly reasons. The
whole Internet feels crippled. There must have been at least a dozen videos I
wanted to watch today that were recklessly censored. Thanks for the youtube
link. I think we need a Redundant Array of Cloud Videos.

~~~
djKianoosh
off topic, but dont feel bad, vimeo and youtube are both blocked at DHS.

~~~
peterhajas
Do you mean the Department of Homeland Security?

~~~
djKianoosh
Yes. HQ specifically.

------
skrebbel
A 'macro system for tools'. Isn't this what the academic bozos call Language
Workbenches?

Extensible tool-building platforms for DSLs are hardly anything new. Reading
things like this, i sometimes worry that the HN-circling web crowd is
reinventing things that others invented just a few years ago. Like some sort
of collective not-invented-here syndrome.

E.g. Check out MetaEdit+ - their website isn't Silicon Valley Sexy, but the
tool is amazing. And has been, for the past 10+ years.
<http://www.metacase.com/mep/>

Now, there's plenty new and well-rehashed ideas in Light Table. I'll be buying
a license, probably. But the insight in this article isn't very new at all.

~~~
radicalbyte
> Reading things like this, i sometimes worry that > the HN-circling web crowd
> is reinventing things > that others invented just a few years ago.

The difference in this case is that the HN web crowd are targeting their
fellow programmers, and not the "Enterprise" crowd.

I've been following the DSL tooling scene, and it's horrible. Think closed
source, expensive and targeted at the Enterprise (or specific engineering
disciplines).

The community is full of MDA (model-driven-architecture) types: too often is
the focus on increasing complexity (for ego boosting / job security) instead
of simplicity and accessibility.

The HN crowd are pretty much the polar opposite: the focus is on simplicity
and scale. Sharing knowledge, instead of locking it up for fun and "profit".

That's why I like it here :)

~~~
vinodkd
> The community is full of MDA (model-driven-architecture) types: too often is
> the focus on increasing complexity (for ego boosting / job security) instead
> of simplicity and accessibility. > .. instead of locking it up for fun and
> "profit".

still, if you ignore the MDA and executable uml silliness, there's quite a few
ideas that can be picked from that closed space, imo.

~~~
nickik
> still, if you ignore the MDA and executable uml silliness, there's quite a
> few ideas that can be picked from that closed space, imo.

Thats what Light Table does, isn't it? If not it will at least allow you to
implement these ideas in a simple way.

------
krupan
The flask example is the really pertinent one to me. Those were all the views
that you need when working on a web app and it would be awesome to have them
all come up automatically like that. It's possible to make emacs show you all
those views by manually opening up frames and finding the right code, and
emacs can even render html (but really, use your browser of choice for that).
I'm sure it would be possible to write the elisp to have it do it all almost
as automagically and smoothly as light-table (but not with rounded corners).
The problem is, if I'm a python expert writing python web-apps, breaking out
elisp to script up an environment like this is just too daunting. Instead I
usually just keep checking back at the emacs wiki to see if anyone else has
done it for me... (should I admit that?)

Is Light Table going to solve that problem? Unfortunately this blog post and
the videos don't demonstrate _how_ you create these modes. Do you have to
become a clojure, clojurescript, html5, css expert?

~~~
pavel_lishin
I spent this morning fiddling with elisp to get emacs to do something I
wanted. On the one hand, it's incredibly annoying, considering that I don't
know anything about elisp. On the other hand, I figured out what I needed, and
now it's a little easier.

On the gripping hand, there's zero chance that I'll be trying to replicate
that functionality in emacs. Even with the wiki, and it's random
~/Desktop/elisp_notes.ver2.txt feel, isn't that helpful.

------
JimmyL
>> The future of tools isn't in a better Eclipse or Visual Studio, it's in
easily created domain specific experiences.

How is that goal different from that of the Eclipse platform
(<http://www.eclipse.org/platform/overview.php>) - a common base where people
can develop individual add-ons to suit the domain they're working on? Eclipse
platform and LT clearly have different interaction models and technologies,
but from the leading quote of the article, the same goal.

Writing Java in Eclipse is, as many have said, a great experience (in the
continuum of Java-development experience). But you know what else is pretty
good? PyDev (<http://pydev.org/>) - a Python IDE that's written on the Eclipse
platform. It uses the same interaction models and designs as Eclipse for Java,
but it's also got a whole bunch of bits that are just targeted at Python
development. There's also a tool (the name of which I don't recall) that our
DBA uses for all his database management that's written on the Eclipse
platform.

I'm all for specific - I use PyCharm every day, which does one thing (Python
development) really well. But I think calling out Eclipse like the parent
article does is wrong. It too can be a platform for "easily created domain
specific experiences"; it's just a different one with a different paradigm.

~~~
spiffworks
> But you know what else is pretty good? PyDev

It's not. It's really not. I've heard good things about PyCharm, but the best
environment for Python that I have seen so far is Emacs. And Light Table
definitely looks like an improvement on that. My only concern with this is the
speed. I want this to have the same response time as Emacs or Vim. Then there
would be no reason not to use it.

~~~
JimmyL
I specifically chose the description "pretty good" (as opposed to "great" or
something more flowery) for PyDev, because I think that best summarizes it.
It's got a number of issues with it (and it's sometimes as slow as a dog), but
for the hobby developer it's more than enough.

Once I started working in Python and spending 30-something hours/week in the
environment, its flaws started to overcome its benefits (namely: it was free,
and I knew how to use it), and it was time to move to PyCharm...which is also
slow, unless you throw a few gigs of RAM at it and at which point it becomes
amazing.

------
anigbrowl
What I would like is a way to do more graphical programming, like this:
[https://www.google.com/search?hl=en&q=reaktor&ion=1&...](https://www.google.com/search?hl=en&q=reaktor&ion=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.,cf.osb&biw=1280&bih=909&um=1&ie=UTF-8&tbm=isch&source=og&sa=N&tab=wi&ei=djS8T6e3HYfZiQKF0cTqDQ)
or this:
[https://www.google.com/search?hl=en&q=reaktor&ion=1&...](https://www.google.com/search?hl=en&q=reaktor&ion=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.,cf.osb&biw=1280&bih=909&um=1&ie=UTF-8&tbm=isch&source=og&sa=N&tab=wi&ei=djS8T6e3HYfZiQKF0cTqDQ#um=1&hl=en&tbm=isch&sa=1&q=synthmaker&oq=synthmaker&aq=f&aqi=g1g-S9&aql=&gs_l=img.3..0j0i24l9.110954.112114.0.112243.10.8.0.2.2.0.104.671.7j1.8.0...0.0.xXcDTgxvp38&pbx=1&bav=on.2,or.r_gc.r_pw.r_cp.r_qf.,cf.osb&fp=a40ca22810824758&biw=1280&bih=909)
(which latter includes both C-like and assembly code modules, as well as
extensive GUI manipulation capabilities).

When I was learning to code, and still sometimes, what annoys me about typing
is that I don't know what I don't know. With graphical programming, having
predefined modules with discoverable inputs and outputs encourages me to try
connecting things together on a what-if basis to a much greater degree than a
textual environment. This is what I find very attractive about the way Light
Table is going; a lot of the time I want to build things but not necessarily
to write code.

------
DasIch
The first time I heard about Light Table I was rather critical but this begins
to look like something that could really replace vim for me. This is rather
surprising given my general distaste of IDEs.

~~~
moe
Same here.

As much as I like vim - it remains software from the stone age and it seems
absurd that our main work interface (editor and shell) still consists of an
emulated 1980s text-mode terminal.

LightTable looks like a major step in the right direction. I think the best
indicator for success will be when the vim/emacs-diehards start porting their
respective shortcuts and functionality over.

I could very well see this fundamental approach (modular/dynamically expanding
interface) become the new paradigm for editors and (hopefully) terminals if
the author manages to make the prototype versatile and hacker-friendly enough.

We've really been entrapped inside ancient TTY-emulations and inadequate GUI-
widget sets for way too long.

~~~
DanI-S
The thing that draws me to Vim, really, is the extensibility. There's a steep
learning curve to creating a powerful Vim extension, but there are still a
huge number of them. Imagine if Light Table can make editor extension
something you can do _per project_!

I probably have a unique preferred layout of Vim splits and tabs that I use
for each codebase I work with. Being able to take this further, telling the
editor which parts of code are significant and in which ways they go together,
I'd have so much less mental overhead.

I love the idea that I could navigate our current codebase by endpoint,
jumping to the account management portion of our API, automatically having the
relevant back-end code and unit tests on-screen, along with benchmark info and
test results. Since we adhere to general conventions at least within a
project, there's no reason this can't be done.

~~~
mattbriggs
vims extensibility is a commonly cited positive, but I totally do not
understand it, since pretty much every editor imaginable is extensible in
similar fashion, and pretty much all of the use better languages then vim.

By contrast, emacs is basically an application platform that ships with an
editor implementation, and eclipse is a platform for building editors.

It's not that vim isn't extensible, it is, just not as much as other
alternatives, and nowhere near as easily as most of its competition.

IMO the real advantage of vim is that it is a highly efficient and productive
tool that works great without any customization, and is available everywhere
without installation. Which is pretty much the opposite of the above opinion.

------
pwny
Boy am I happy I pledged for Light Table. And the benchmark mode looks so
freaking great. I'm getting excited just thinking about it. I don't think I'll
be able to wait until the early beta. ARGHH!

------
GlennS
It's a pretty impressive demo. It looks like it could be the mother of all
scratchpads. It looks like it might have a bit of a scary learning curve
though.

I can certainly think of a lot of ideas of what I might try to implement with
such an approach. Really any existing code inspection/analysis approach.

I'm thinking some sort of view onto Powershell providers could be interesting.

Maybe exception lookups in the code as your browse through an error log.

Definitely a regex tester utility: does your string match the regex? Do parts
of it match part of the regex? What's an example string that would match? Can
we display all of this dynamically in real time?

------
negrolious
Eclipse with <http://xtext.org> is an outstanding platform for domain-specific
languages and domain-specific tools. I don't know any tool which comes even
close.

------
frendiversity
I'd rather see Light Table features integrated into Eclipse, as creating
something as fully featured as Eclipse is...

 _...going to end up being Eclipse._

So either a massive wheel is being reinvented, or Light Table will be absent
of all standard IDE features and consist of the flashy neato Code Bubbles
stuff and not much more.

That said, I say develop the hell out of the Light Table concept for all the
"new age" (circa 196X) dynamic coder people since their IDEs tend to suck, and
_let's hope it becomes a standard_ and we can implement it all in everything
else. :)

------
cwilson
I'm specifically excited about Light Table (and the second half of this video
where he dives into Python/Flask), because as a front-end guy, I generally
spend most of my time in views/templates. I occasionally have to dive into
models however, and it seems to me Light Table would help me navigate
something I consider a bit of a wild west much more efficiently, resulting in
learning much faster.

Basically, I'm excited about Light Table because I think it will help me
become a better programmer.

------
twelvechairs
The key line for me here is that the future is in 'easily created domain
specific experiences'. I think this is very eloquently stated and can't agree
more.

I like what Light table is trying to do, hoewver it is still working in pretty
much the same 'domain' space as existing IDE's ('code'), and trying to improve
on the 'easily created... experiences' part.

As the post is waxing lyrical, my piece to add to the broad-concept discussion
is that I'd really like to see more programs which try to be applicable to a
broad variety of non-coding domains, which actually occupy the majority of the
work that people do on computers (working with images, working with
spreadsheets, working with documents and pages, working with 3d spaces,
animation, realtime information, etc.), allowing the easy creation of 'domain
specific experiences' in these, which is generally impossible or very
difficult in most of todays pre-compiled software for these tasks.

[I hope that all makes sense to someone :) Would also appreciate any
discussion as something along these lines is a side-project of mine atm]

~~~
ibdknox
We showed examples that relate very cleanly to "normal coding", but what we
ultimately want to see is exactly what you're describing. There are so many
places where a thin veil over the implementation would be immensely useful,
presenting new interfaces for things like working with physics simulations,
financial models, etc etc.

~~~
twelvechairs
Thanks for the response. I realise you probably have huge priorities finding
your way to MVP right now, however I hope to see more of this side in the
future. I just saw your 'live game editor' video, which is probably closer to
what I am thinking of - using the visual element (in that case the game
window) to feed back into the live code [this hasn't really been in the
lighttable videos - which led me to my assumption lighttable was 'code' based
in my prev post]. I really think that the future is in there somewhere.

Best of luck to you by the way :)

------
frou_dh
If you come up with some new code in a "scratchpad" area and want to save it,
where will it go? In a new file? Appended to the end of an existing file?

Similarly, if you edit one of the "supporting" functions that appear and want
to save those changes, will they be saved in-place (e.g. line 217-241) in
whichever file that function is from?

------
bnegreve
Being specific is not a feature, this is what you do when you have no other
way to solve a problem. The ambitious challenge raised by Light Table was to
generalize Bret Victor's ideas to general programming, if they are unable to
do this, I'll stick to my IDE.

~~~
espeed
In case anyone is wondering:

"Bret Victor - Inventing on Principle"
(<http://www.youtube.com/watch?v=PUv66718DII>)

~~~
d0mine
Thank you for the link.

Make tools to be extensions of our bodies via immediate feedback is a useful
idea (it is not the main point of talk, but it stands out to me).

As a side note: It might be even be literally true for physical tools i.e., a
brain can physically change to see the tool as an extension of the hand (from
a study about ape, its brain, and a stick).

------
ulf
Looks more promising every time! While I like the idea to not work on your
stuff as files, I have a question in that regard:

Do you have specific plans on how to incorporate version control when not
primarily relying on files?

~~~
ibdknox
It's still serializing to files - it has to, our workflows are entirely
dependent on them :)

~~~
socksy
Are you developing Light Table using Light Table? If not, is that a future
aim?

------
anoplus
Recently I was thinking maybe software industry is too much obsessive about
tool making. I wouldn't mind spending much more time and effort using a bad
IDE re-factoring bad code that works good and cures cancer. I don't really
care how awesome the static analysis tool I am using, or how awesome the meta-
meta-meta-meta-meta-meta-meta-meta programming language I am using if I work
on pointless product. Maybe I am wrong and those tools are the only way for
real breakthroughs in bioinformatics.

what do you think?

~~~
nickik
This 'problem' is old. Even the Hackers in the 60s didn't often do anything
'real'. The made tools to make it easier to make other tools, and so on. The
think is that WHEN you want to develop something real you want to have these
tools ready to go.

With your aditued there will not be that much progress, since everybody would
have just said 'mmhh lets not develop a good compiler for C lets write
assembler'. In my opinion as long as people develop better tools (languages,
IDEs, compilers, debuggers) there is need for them. If one guy spends a couple
of month on a Tool, how long will it take until the time saved is 'recoverd'
by the users of that tool? Making tools yileds economic benefit, just like in
the real word a maschine that does something better or faster will result in
economic benefit.

That is not do say there is never mal-investment. Somebody might spend a long
time developing something and nobody will use it, programming related or not.
This however is not an argument for no innovation.

------
gumuz
I love it, especially the grouping of files: route + models + templates, in 1
view is something I see a use for. Does anyone know of an editor which can do
something similar?

~~~
viscanti
Plenty of editors offer split view editing. You'll need to actually open the
route, model and template files, but it's easy enough to have them all open at
the same time. The real challenge here is how they'll handle larger files
(real-world production code rarely is that small and clean, you almost always
have complex logic and a number of database calls).

~~~
gumuz
isn't it the idea to forget about files, so I can see the models & and views
I'm interested in in for a particular workflow. Regardles of where & which
file they're located in?

------
ashliana
More of a meta comment on the future being specific and how it is all about
creating more domain-specific tools vs generalized tools... I think that's
really a common property in any complex, highly powerful system. Think about
the brain, the economy, DNA, a corporation even... etc. Domain specificity is
the past and the present, too!

------
ckluis
As a non-developer. I would love this for php & wordpress.

Here me out: the people who aren't in IDE's all day could benefit the most
from this. They don't know where the functions are or even how to find them
sometimes. I resort to google 9/10 when looking for how some functions.

This has huge applications for helping non-programmers become programmers.

------
spiffworks
As an Indian who cannot access Vimeo, this is what I see.
<http://i.imgur.com/ojTVQ.png> May I ask for a link to the video on another
service?

~~~
ibdknox
look at my comment below.

~~~
spiffworks
Thank you!

------
bergie
I like this concept. Once Light Table is becoming available I will definitely
try to make a Flow-Based Programming mode for <http://noflojs.org/>

------
kitsune_
This somehow reminds me of Microsoft's "strategy", or whatever you want to
call it (VisualStudio LightSwitch, SharePoint Designer)?

------
philip1209
I was just on Subtle Patterns this morning, and I now recognize where Chris
grabbed the two background aluminum images!

------
haliax
LOVE the web example! Keep up the good work!

------
eragnew
Light Table looks amazing. Simply amazing.

------
gosub
So the future is the Unix philosophy.

------
islon
This is amazing! I can't wait to use it.

------
its_so_on
March of the specific.

Google didn't win by being the best general-purpose search, where people go to
look for anything on the Internet. It won by being the best for searching
_only_ um, okay not the best example.

Facebook didn't just raise 14billion at a valuation of 100billion by being the
best general-purpose social network, where just anyone would have a profile.
It won by being the best network for, uh.. Okay, not the best example.

Well, take a revolutionary new product like the iPad. It doesn't have hundreds
or thousands of apps to do uh, hold on. I'm sure that somewhere there's the
ONE thing that it does. Uh, it's a screen?

Look, step back. There's only one thing you can do in Photoshop. I mean
there's just one thing to use Ubuntu for. Sorry, I meant that when you say the
word 'Harvard' everyone knows what the ONE thing that they teach is!

Okay, look, these might not be the BEST examples in the world. Take a pair of
jeans. There is ONE time and ONE place to, uh.

Fuck. I'm done. If the future is anything like the present, nobody even knows
what the fuck business Amazon is in anymore.

[http://finance.yahoo.com/echarts?s=AMZN+Interactive#symbol=a...](http://finance.yahoo.com/echarts?s=AMZN+Interactive#symbol=amzn;range=5y;compare=;indicator=volume;charttype=area;crosshair=on;ohlcvalues=0;logscale=off;source=undefined);

The future is the very opposite of the word "specific".

~~~
prospero
All of your examples are _gestalts_. They're not single seamless abstractions,
they're patchworks that are more than the sum of their parts.

That's precisely what is being proposed here: a platform for creating a
development environment that is more than the sum of its parts. Something that
gives you composable pieces that can be fit together into something that maps
directly onto your problem space.

Is this really so unclear? I can't picture the hypothetical product that
you're arguing against.

~~~
its_so_on
Well, I looked at the "gestalt" Wikipedia article. As near as I can make out,
you're saying that Google in fact highly tailors its search-for-geneticists,
which has nothing to do with its search-for-bakers: it seems like a single
whole, but isn't. But that patently isn't so. Patently, every niche runs off
the same algorithms. Equally, bankers' circle of friends use the same facebook
that teenagers' circle of friends use: it isn't multitudinous facebooks that
seem to be one but are really quite different. Likewise jeans in jeans-and-a-
blazer are obviously the same jeans as jeans in jeans-and-a-tshirt. iPad apps
are built with the very same SDK and frequently have very similar UI/UX. There
is literally nothing domain-specific about objective c. I will grant you that
Amazon's cloud stuff is very different from its merchandizing operations, but
beyond that I don't see where the big difference between shipping books and
shipping dry cereal is, which is two businesses that Amazon is now in. In
fact, if anything, Amazon's cloud services are the OPPOSITE of domain-
specific: Reddit, which includes ZERO filesharing, is on it, and so is
Dropbox, which is basically ONLY filesharing. If you look at what Amazon is
actually exposing with AWS, you will see it is as generic and non-domain-
specific as theoretically possible. Heck, they've even abstracted away the
individual server! (So the last bastion of something that might separate a
database-heavy user site from a disk-heavy backup site disappears). I would
say that their whole movement is towards being non-specific.

You probably understand what you're saying better than I do, so please do
explain. Because from where I'm standing, it seems the whole march of the
Internet is in busting domain-specific-languages and approaches. Every time a
cute hack with CSS hits the front page, it's proof that CSS derives its power
precisely from _not_ being a domain specific language. Off-hand, can you name
a single domain-specific language or approach that has really 'won'?

You may know more about this than I do, so it is certainly a genuine question.

~~~
phyzome
You're saying that CSS _isn't_ domain-specific?

~~~
its_so_on
The more and more you can do with it, _clearly_ it's becoming less and less
domain-specific.

<http://www.cssplay.co.uk/menu/amazing.html>

or just google for hackernews posts like entirely in css, pure css, all in
css, etc. Hell from a quick glance it seems that if you google for 'in css'
half the posts on hackernews are like that...

<http://y.ww.com/item?id=2636440>

It's not hard to see where this is going...

------
nebiros
RUUUUUUBBBBYYYYY SUUUUPPPOOOORRRTTTTT!

~~~
randall
Hopefully with the speed he added Python, ruby / rails support is only weeks
away too. :)

