3 ms·
My short-lived experience with Java and Android made me wary of IDEs. It taught me an important lesson: If a language's IDE can autogenerate 90% of the code in
by qwertyuiop924 10y ago
My short-lived experience with Java and Android made me wary of IDEs. It taught me an important lesson: If a language's IDE can autogenerate 90% of the code in "hello world" for you, without knowing anything about the program you are about to write, than that language has far too much boilerplate.
I've never loved IDEs, because they increase the amount of time between having an idea and starting to code it, whereas with emacs, I can just start writing code.
The only IDE that is any good is the Smalltalk IDE, because it's not so much an IDE in the java sense as it is a realtime window into the soul of your application and environment. I mean, if you thought the modern LISP's realtime interaction was good...
But yeah, even then, I start to miss emacs. And I'm not even a serious emacs user. Which is to say, my config can probably fit on only a few pages, and I don't know the 100+ set of basic keyboard shortcuts yet.
- pjmlp 10y agoI used Emacs for around 10 years, so I do know what it is capable of. Regarding Lisp many in the FOSS camp that never experienced commercial Common Lisp IDEs should give a try, the REPL is only the tip of the iceberg. Maybe Racket is the closest one can get without paying. Back in the mid-90's I couldn't even get Emacs to do what Borland got me with their tools or even what I later learned Xerox environments were capable of. Energize C++ with their custom Emacs was probably the closest thing that one could get, if the company could afford it.
- qwertyuiop924 10y ago>Regarding Lisp many in the FOSS camp that never experienced commercial Common Lisp IDEs should give a try, the REPL is only the tip of the iceberg. You've said. However, I am unsure as to whether any Lisp implementation outside of the lisp machine truly allowed for programming inside a live environment, such that there is no distinction between the live environment and the code on disk, where the image IS your environment. Although being able to serialize your live environment to disk goes a long way. As a schemer, I'm still drooling over that particular feature.
- pjmlp 10y agoHere is how it used to be back in the day on the Mac. http://basalgangster.macgui.com/RetroMacComputing/The_Long_View/Entries/2013/2/17_Macintosh_Common_Lisp.html http://basalgangster.macgui.com/RetroMacComputing/The_Long_V... Allegro Common Lisp now has an express edition: http://franz.com/products/allegrocl/acl_ide.lhtml http://franz.com/products/allegrocl/acl_ide.lhtml http://franz.com/downloads.lhtml http://franz.com/downloads.lhtml Also for a bit of time travel, there are quite a few documents from Interlisp-D at Xerox PARC available: https://archive.org/details/bitsavers_xerox?and[]=subject%3A%22interlisp%22 https://archive.org/details/bitsavers_xerox?and[]=subject%3A... On Xerox, images are called symbolic files.
- lispm 10y ago'the lisp machine' did not do that. There were different attempts. The MIT Lisp Machine used Lisp code in files, with some tool support. The Xerox Lisp Machine (different hardware, different Lisp, different OS) used a different approach will full managed source code in the image, with managed files as kind of a way to persist sources.
- qwertyuiop924 10y agoAh, apologies. And yes, I know there were multiple lispms.
- lispm 10y agoThe bigger Lisp IDEs have a different idea. They use the running image as an information system about all the sources it has seen, which means, which it has loaded and/or compiled. Location of source, arguments, who calls who and from where, documentation snippets, ... When you load and compile, this data is continously updated. See: http://lispm.de/genera-concepts http://lispm.de/genera-concepts LispWorks or Allegro CL are in that direction. It's not as radical as the InterLisp-D system, which is in many ways similar to Smalltalk - when in fact many ideas in Smalltalk are coming from Interlisp and its earlier BBN Lisp, including part of the runtime technology, which enables dumping/restarting images.
- deleted 10y ago[deleted]
- flukus 10y agoWith android it's not just boilerplate code but the undocumented tooling involved as well. It might be to late for you now, but I broke some of it down into something more understandable a while ago: http://flukus.github.io/2014/08/19/2014_08_19_Android-Take-back-your-builds/ http://flukus.github.io/2014/08/19/2014_08_19_Android-Take-b...
- qwertyuiop924 10y agoWell, yes, there is that. Great article, by the way. But the awful boilerplate had a lot to do with me dropping it. If I build an android app, it will be either PhoneGap/Cordova, React Native, or some other tooling.
- tigershark 10y agoIn which way in an IDE you can't start coding straight away? I always start coding straight away in Idea or Visual Studio.
- qwertyuiop924 10y agoshrugs There's a different workflow. I always feel like I'm fighting the IDE, the instant I do anything that is even slightly off the beaten path. And they're complicated: everything about the IDEs that I've used seems to be an overcomplicated mess of settings, options, and menus, whereas in emacs, I could just put a single config option into my init.el to do what I want instead of jumping through all those hoops just to get to the setting. This is a problem compounded by the fact that Java, the only language I've used in an IDE, has a complicated development environment and multiple complex build systems, meaning you HAVE to fiddle with things to a fairly large extent. To further things, it's rare for an IDE to be as programmable and configurable as emacs, or even close. It's considered above and beyond the ordinary to write extensions for most IDEs: the job of an extension is to add some big feature, like support for a new programming language. My first emacs "extension" was a simple function that wrapped around some actions I found myself constantly using in sequence, so I could type one command sequence instead of six. It wasn't something I wanted to dedicate a macro to, I just wanted a command to exist that would do what I wanted. And then, 5 minutes later, I had one.