Hacker News new | ask | show | jobs
by shadowfiend 5051 days ago
It's awesome how similar some of this looks to Smalltalk IDEs, with some bonus improvements. It's true that it's high time someone picked up the baton on the concepts they pushed, and I'm pumped to see that Light Table is picking up that baton and running with it to present even more interesting possibilities.
1 comments

I hope you are wrong, because I find Smalltalk IDEs infuriating. Mostly I dislike the fact I have to either make 10 click to reach any code I want to see, or manage a large number of annoying windows to keep track of what I'm working on.
More importantly I think than some of the other responses, as I said, Light Table is “picking up that baton and running with it to present even more interesting possibilities”. Taking strong inspiration from some features in Smalltalk IDEs is different from building a Smalltalk-style IDE for Clojure. I see inspiration here, but not straight copying per se.
I don't know why you're downvoted. I think you're right.

There are lots of windows you have to drag around all the time and click in many places to get to some code.

Much like when you complain about parenthesis in Lisp, if you complain about windows in Smalltalk (or key combinations on Emacs) you are probably focusing your attention on the wrong thing. Stop fighting the environment. Let it flow around you.
I don't think this type of argument carries much weight. Just because one can get used to something, doesn't really make it a clear choice.

All of these environments are good choices for many reasons. However, they aren't without major flaws.

Smalltalk environments do tend to be a bear when following the code around window after window, emacs keychords are not very human friendly or composable and can give you RSI, and lisp parentheses are mainly for the convenience of the language parser, not for the programmer (contrary to the famous quote).

While I don't disagree on your other points, lisp's parentheses aren't just for the convenience of the parser, they're also for the convenience of the programmer who uses macros. Homoiconicity is a huge boon there.

Try using another language which allows macros and you'll see what I mean. For example, Haxe allows macros, and while it's syntax for them has recently improved, it still has a ways to go. Here's an example macro which checks if its argument is a constant string, and if it is, reads the file it represents. http://haxe.org/manual/macros/#manipulating-expressions

edit: The equivalent in clojure would be something like

    (defmacro get-file-contents [s]
      (if-not (string? s)
        (throw (Exception. "Expected string"))
        (slurp s)))
Which happens to look very similar to a function that does the same thing, but at runtime instead of at compile time.
The haxe macro reads the file at runtime. Your clojure macro reads the file at compile-time. The proper version would be :

    (defmacro get-file-contents [s]
      (if-not (string? s)
        (throw (Exception. "Expected string"))
        `(slurp ~s)))
The convenience for the language parser at least translates into convenience for structured editing in the case of Lisp.

I always miss the convenience of modifying code with Paredit when I'm working in another language.

Lisp quotes does have plenty of advantages for human reading, though.
Only the parenthesis in Lisp have to be like that to serve a purpose (data is code is AST, homoiconicity, macros, et al). They cannot really be changed much and still have a Lisp proper.

Whereas Smalltalk IDE window handling could be improved tremendously from the mid-90's designs it still carries to this day. Not the reflective/debugging/refactoring capabilities (the good parts). Just the GUI and the handling.

I agree. One of Smalltalk's (the system) greatest assets is that it integrates fantastically with a GUI/mouse input. However, I also find that one of its biggest problems.

I've pretty much stopped using the mouse for input -- due to RSI -- and I don't care much for trackballs etc. I think the next five years might vindicate Smalltalk a bit as I expect touch interfaces to keep rising -- both touch in the sense of touching with your finger(s) as well as proper "pen" input (which is much better for drawing anyway).

However, for typing -- I still prefer vim -- and at least someone is toying with that idea in Pharo:

http://forum.world.st/ANN-Vim-Shortcuts-for-Nautilus-Proof-o...

While your drawing comment leads me to suspect you probably already have one, it's worth pointing out that Wacom pen tablets are an excellent alternative to mice, especially for people who have difficulty using the latter (arthritis in my case), and in particular when using "mouse-heavy" IDEs, as they're particularly good for text selection. I haven't personally used a mouse on a regular basis in well over a decade.

More recently, I've also found the combination of large Intuos tablet "stage right" and an Apple Magic Trackpad "stage left" for gestures and other things where precision is unnecessary to be a nice way to spread the load across both hands, though I'm not sure how well it'd work, if at all, under Windows or Linux (natively — it works great with VMware Fusion). And while it'd be a nonstarter for people who do lots of numeric input, I've also found smaller keyboards without numeric keypads can make a significant difference in ergonomics, though this is probably somewhat specific to elbow problems like my own.

Actually no -- I've only recently taken up graphical input (for post-processing/touching up photos) -- and I've yet to invest in any new hardware for that. Your comment on using one for "normal" input is very welcome -- I would've thought they'd be pretty horrible for exactly the things you say they're good at. Moves a wacom tablet higher on my list of hardware to get.

Still, if I can afford it when it gets out, I'm considering getting a modbook:

http://www.modbook.com/modbookpro

I suspect we'll see more hardware along these lines as Microsoft push out w8 and touch input becomes more viable for the mainstream (or perhaps more marketed -- hence increasing the sales/production volume and dropping the price of parts).

I felt the exact same way using the Seaside IDE, but I only used it for a day, maybe it just takes some getting used to?