Last time I did any computer programming, it was using a text editor. So I was really blown away by App Inventor for Android, which is a visual programming environment. Is that pretty standard now? Is there something similar for developing iPhone Apps? (I am not looking for comments along the lines of, “here is how I develop my iPhone apps.” I am wondering whether there is a development environment that is drag-and-drop like the one at the link.)
READER COMMENTS
mdb
Apr 26 2012 at 10:09am
Visual Studio has been drag and drop for a while (Visual Basic has been for even longer). It pushes a developer to event driven programming, so many people dislike. There are many java tools that allow for drag and drop. You should look up IDE (integrated developing environment).
david
Apr 26 2012 at 10:20am
Form designers are pretty common. Actual visual programming is much rarer. Non-pedagogical programming is still done in text IDEs, although depending when you last did it, there may have been considerable advances (intelligent autocomplete capable of tracking your object hierachy, extensible IDEs, etc.).
Arnold Kling
Apr 26 2012 at 10:32am
But not all IDE’s hide the source code the way the appinventor does. For a lot of coders, hiding the source code would be a bug rather than a feature, but I like it.
Eric Hanneken
Apr 26 2012 at 10:47am
No, App Inventor is not standard now, and I’m not aware of any iOS equivalent.
The development tool I’m currently most anticipating is Light Table, which hopefully will get fully funded on Kickstarter.
Rick Hull
Apr 26 2012 at 11:21am
Have you looked at http://scratch.mit.edu/ ?
As a software developer wedded to the emacs / text file model, I found the Scratch environment frustrating after playing with it for about 12 hours over the course of a week. But I think it represents some sort of advancement in presenting programming concepts.
Publius The Lesser
Apr 26 2012 at 12:36pm
I saw a lot of visual programming languages developed when I was at Carnegie Mellon, and they all suffered from the problem that programs constructed from simple visual vocabularies quickly became very difficult to understand and visual languages capable of expressing complex programs understandably quickly became too large for people to handle. Text can be a remarkably concise medium – sometimes a single word is worth a thousand pictures rather than the other way around – so I don’t see visual media replacing text for programming any time soon. Tools like AppInventor are useful for applications where the code is pretty standard, but the novelty and value lie in the presentation or in what data sources are synthesized to produce the product.
Jeff B
Apr 26 2012 at 8:28pm
Not exactly the same but may be interesting to those reading this article is http://twolivesleft.com/Codea/ – which while not fully visual, is an iPad programming environment for the iPad itself. It’s a good deal different than most IDE’s you’ve probably seen, and in fact the first game created with it just went live in the App Store.
Michael Bishop
Apr 26 2012 at 10:49pm
Text editors are still standard. If you want to know about the technology that really is widely used and cutting edge among programmers, read about git version control here: http://permut.wordpress.com/2012/04/01/open-science-what-we-can-learn-from-open-source-software-engineers/
A=A
Apr 27 2012 at 9:05am
Senior software engineer here, with most experience in .NET-based technologies, though some open-source stuff too, particularly JS/jQuery.
Visual Studio will do some cute drag-and-drop stuff for you; VS is considered the state-of-the-art in IDEs, even by Microsoft’s detractors.
Even so, about the most-complicated program you can create in VS without writing a line of code is a simple form-based data-entry web app connected to a database (similar to the default app created by Ruby on Rails’ “rake” script), using an entity structure generated by an object-relational mapper like Entity Framework… and I’m not certain even that is possible (via ASP.NET Dynamic Data: http://msdn.microsoft.com/en-us/library/cc488545.aspx). And if you want to do things in HTML and Javascript/jQuery, then you’re back to writing code in a text editor.
Android App Inventor is a cute tool, but much mobile phone development that does not require a great deal of phone-specific functionality is being done with PhoneGap instead, which is compatible with several mobile operating systems (iOS, Android, Windows Phone, etc.). Whether you would find it sufficient for your work depends on your project though.
In the last decade, language usage has on the whole shifted from C/C++, VB6, Java, and Perl to Java, C#, Python, and Javascript (although a movement is growing that is pushing us back to C/C++, for reasons of execution performance and control), and there has been a movement towards functional programming (R, LINQ, etc.) that is a godsend for data-mining/statistical and parallel-processing applications (as a mathematically-sophisticated economist (albeit, one who does criticize the over-mathematization of your field), I imagine this might particularly interest you). It is now almost trivial to parallelize computations across CPU cores in C# and .NET 4.0. But the popularization of FP is really the only advancement in linguistic terseness that I see.
Databases are still widely SQL-based, but the schemaless NoSQL variety are used by major tech companies (Google, Facebook, etc.) in scenarios where data structure strictness is less-important than scalability and parallelization of computation, and this type is slowly gaining traction.
Programming tools have added features for things like refactoring, unit testing, single-click deployment, code-prediction and completion, etc., but some of these can be fidgety and complicated to anybody who isn’t a full-time engineer and/or passionate about the practice.
Bottom-line: We still use text editors, but we feed them steroids now, and expect the compilers/interpreters and libraries/frameworks to do things that 10+ years ago were recently-published topics academic and professional journals and were almost considered magic (like map database structures to/from code files, for the purpose of more-intuitive data-access). Alas, the promise of programming without the trade-off of complexity and power, as first propounded by COBOL 45 years ago, has yet to be realized…
[Comment was originally submitted earlier and was accidentally classified and deleted as spam. We apologize for the inconvenience.–Econlib Ed.]
Comments are closed.