Linked by Thom Holwerda on Sun 29th Nov 2009 23:39 UTC
General Development Even though I'm not a programmer, I still know that while some programmers like the idea of graphical programming, whereas others shun the concept completely, opting for a more hands-on approach. While Microsoft is quite active in the field of graphical programming, the company's own high-level coders aren't very keen on the idea.
Order by: Score:
Graphical Coding?
by Almafeta on Sun 29th Nov 2009 23:53 UTC
Almafeta
Member since:
2007-02-22

The linked article seems to use "graphical coding" to mean at least three different concepts...

Reply Score: 6

RE: Graphical Coding?
by leos on Mon 30th Nov 2009 01:13 UTC in reply to "Graphical Coding?"
leos Member since:
2005-09-21

The linked article seems to use "graphical coding" to mean at least three different concepts...


Yeah, under graphical programming I would put products such as Simulink, LabView, or MaxMSP, where you connect blocks together on a canvas to create the final program. That has nothing to do with an IDE like Visual Studio, Eclipse, or Qt Creator.

Anyone programming in Notepad these days is just an idiot that likes to waste time. It's not a debate, it's just braindamaged not to take advantage of a good IDE.

A good IDE (such as Visual Studio for .NET languages, Qt Creator for C++, Eclipse for Java) will not take any control away from you, but will help immensely with code completion, integrated debugging, integrated class references, refactoring, source control, GUI design tools, etc etc. Given two developers of similar skill, the one taking full advantage of their IDE will be way more productive than the one that's coding with a basic text editor.

Edited 2009-11-30 01:14 UTC

Reply Score: 8

RE[2]: Graphical Coding?
by google_ninja on Mon 30th Nov 2009 05:18 UTC in reply to "RE: Graphical Coding?"
google_ninja Member since:
2006-02-05

I would say it depends on the language. C++-ish lanaguages are quite verbose, and you need a pretty powerful tool to manage the amount of code you need to write for even simple things. Less verbose languages, I will choose a set of lightweight tools every time over an IDE.

Reply Score: 3

RE[3]: Graphical Coding?
by danieldk on Mon 30th Nov 2009 11:06 UTC in reply to "RE[2]: Graphical Coding?"
danieldk Member since:
2005-11-18

Hear, hear. It indeed depends on the language. In Java or C# having a fully-featured IDE makes sense, they have huge class libraries that are difficult to memorize, and their OO and package-based nature make them fit for IDE use.

On the other hand, I cannot imagine writing Prolog or Haskell in an IDE. Both have a relative small set of predicates/functions that are easy to memorize. While autocompletion of identifiers may make sense, there is not much to gain beyond that. Mind you that these languages have very different purposes, you'd would never write forms or 'business methods' in Prolog, while it makes e.g. parsers trivial.

In my daily work I tend to use languages where a plain-editor is better-suited (or the only option). But if I have to edit some Java code, I'll use Eclipse any day, because it is far more painful to do in a text editor.

Reply Score: 2

RE[4]: Graphical Coding?
by Zifre on Mon 30th Nov 2009 12:33 UTC in reply to "RE[3]: Graphical Coding?"
Zifre Member since:
2009-10-04

On the other hand, I cannot imagine writing Prolog or Haskell in an IDE. Both have a relative small set of predicates/functions that are easy to memorize. While autocompletion of identifiers may make sense, there is not much to gain beyond that.

Actually, being able to see the type of a function is very, very useful in Haskell.

Reply Score: 2

RE[3]: Graphical Coding?
by ljgshkg on Mon 30th Nov 2009 15:07 UTC in reply to "RE[2]: Graphical Coding?"
ljgshkg Member since:
2008-03-25

Sometimes, I do find memorizing all the classes and methods and your variables etc. etc. etc. too much. You may easily have spelling/typing error, extra 's's at the end, etc. etc. IDEs simply come to help.

For very small scripts though, I use VI cux I find its operations much faster.

Reply Score: 1

RE[2]: Graphical Coding?
by Timmmm on Mon 30th Nov 2009 12:17 UTC in reply to "RE: Graphical Coding?"
Timmmm Member since:
2006-07-25

LabView. *Shudder*.

Reply Score: 2

RE[2]: Graphical Coding?
by ebasconp on Mon 30th Nov 2009 14:15 UTC in reply to "RE: Graphical Coding?"
ebasconp Member since:
2006-05-09

Anyone programming in Notepad these days is just an idiot that likes to waste time. It's not a debate, it's just braindamaged not to take advantage of a good IDE.


The productivity of a software developer is not given by the tools he uses but by their own skills; so, a brilliant developer will be more productive using his emacs, vi or notepad than a mediocre developer using NetBeans, Eclipse or Visual Studio.

I don't consider myself to be brilliant, so, I DO like to use QtCreator and NetBeans to do my development, but I do not use UI designers because its generated code is simply very dirty, unelegant, hard to maintain, hard to read, etc. etc.... but though I use IDEs to do my developments, I respect a lot to the people that creates great things using vi.

Reply Score: 3

RE[3]: Graphical Coding?
by Auxx on Tue 1st Dec 2009 14:52 UTC in reply to "RE[2]: Graphical Coding?"
Auxx Member since:
2007-04-05

Brilliant programmer with proper IDE will be more productive then brilliant programmer with notepad. This is an axiom.

Reply Score: 1

RE[4]: Graphical Coding?
by marafaka on Wed 2nd Dec 2009 09:05 UTC in reply to "RE[3]: Graphical Coding?"
marafaka Member since:
2006-01-03

Also: every person that works in three different environments will be more productive with vi than with three different IDEs ;)

Reply Score: 2

RE[3]: Graphical Coding?
by marafaka on Wed 2nd Dec 2009 09:03 UTC in reply to "RE[2]: Graphical Coding?"
marafaka Member since:
2006-01-03

You can not compare workhorses like vi and emacs with a demo program like notepad! Also, integration of vi and emacs in UNIX environment can not be compared with ... well non-existent integration of notepad. By cursing it two times i gave it too much credit already.

Reply Score: 2

RE: Graphical Coding?
by kamil_chatrnuch on Mon 30th Nov 2009 14:02 UTC in reply to "Graphical Coding?"
kamil_chatrnuch Member since:
2005-07-07

just to quote a post on this topic from slashdot:

The real reason why they don't use Visual Studio is far more prosaic -- the build environment of most of Microsoft products does not support the Visual Studio project files. Their products are built using a system called CoreXT -- basically a set of binary tools and scripts cobbled together by build engineers and developers over the past decade or so. CoreXT uses a lot of different crap, make, perl, compilers, etc, etc., and all tools and SDKs are checked in and versioned. The upside is that you can roll back your Source Depot (Microsoft's own flavor of Perforce) enlistment to an earlier date and be sure things will build exactly the same way, and once you enlist, you get repeatable, isolated build environment where you can guarantee the correctness of versions for all tools, compilers and libraries (Java developer's wet dream, even though they don't know it). The downside is that you have to maintain the makefiles by hand, and you can't use Visual Studio, because there are no project files checked in, and even if there are, most people don't use them and they are not updated, so you can count on them being broken.

I did a lot of my coding in either Notepad2, or in a separate project in Visual Studio against a test harness emulating the rest of the project (what Enterprise Java types call a "mock"). Some folks used Ultra Edit or vi, or EMACS. For some just a bare Notepad did the trick. Some stuck with Visual Studio, which in their case was just a glorified Notepad with autoindent since it doesn't support build or Intellisense if you don't have a project file.

Yes, it's an enormous waste of time, and yes, it was painful. But CoreXT is so integrated into the rest of the dev pipeline that replacing it with something else in a large product is a major, destabilizing endeavor that is bound to undo at least some of the work around gated check-in infrastructure, test infrastructure, automated deployment infrastructure and god knows what else, so few teams ever attempt it. Now naturally, DevDiv eats their own dogfood, so they were one of the first teams to switch completely to MSBuild. It took something like a year in their case, they did it gradually, from the leaves down the tree. I'm sure if they had a choice, they would be using CoreXT to this day though, and fighting with incremental build issues. :-)

Recently, a few more teams have adopted MSBuild. They can actually open their entire projects in Visual Studio and rebuild them. If they have test infrastructure deployed on the side, some of them can even test the product without waiting for it to deploy. So I predict that as more and more teams adopt MSBuild (this in itself could take another decade easily), these "senior" folks will come around to appreciate its benefits. It's awfully handy when you can set a conditional breakpoint on your local box and step through things.


source: http://tinyurl.com/yhodowd

Reply Score: 4

Comment
by siimo on Mon 30th Nov 2009 00:17 UTC
siimo
Member since:
2006-06-22

I think by graphical coding you are referring more to the modern IDEs like Visual Studio .NET.

Although some Microsoft developers mentioned they preferred the old fashioned ways, most MS Developers do use VS.NET as I have observed in Channel 9 tech videos.

By the way your kind of confusing me when you say high-level programmers. High level (.net, web) programmers are more likely to use IDEs than low level (assembly, c++) programmers, I think you were meaning experienced when you said high level.

Reply Score: 4

RE: Comment
by google_ninja on Mon 30th Nov 2009 05:20 UTC in reply to "Comment"
google_ninja Member since:
2006-02-05

The reason for that is that C++ is extremely hard to parse and has no introspection api, so making things like refactoring tools for it is quite difficult. Once you throw that out the window, all that is left is the editor, and there are many better editors out there then what ships in studio.

Reply Score: 2

RE[2]: Comment
by Laurence on Mon 30th Nov 2009 09:45 UTC in reply to "RE: Comment"
Laurence Member since:
2007-03-26

The reason for that is that C++ is extremely hard to parse and has no introspection api, so making things like refactoring tools for it is quite difficult. Once you throw that out the window, all that is left is the editor, and there are many better editors out there then what ships in studio.

What like?

I've coded C++ in Kdevelop, Eclipse and Visual Studio (as well as a number of smaller environments I've long since forgotten the name of) and found MS product to be a far nicer environment to program in.

Unfortunately for me though, MS VS is Windows only product and I'm wanting to program on Linux (for a number of personal reasons)

So if you know of any good IDEs that are not only Linux ready, but also outshine VS, then I'm genuinely keen to hear your recommendations ;)

Reply Score: 2

RE[3]: Comment
by coolvibe on Mon 30th Nov 2009 10:08 UTC in reply to "RE[2]: Comment"
coolvibe Member since:
2007-08-16

I'm kinda partial to NetBeans. It support quite a few languages, and I use it to program in C (no, not C++) and in Java. It can do PHP, Pytthon and Ruby as well.

The main reason I like it is because it will stay out of your way, and it will not move an existing codebase to some workspace if you import your existing code into NetBeans.

And, it's free too.

Reply Score: 1

RE[4]: Comment
by Laurence on Mon 30th Nov 2009 11:33 UTC in reply to "RE[3]: Comment"
Laurence Member since:
2007-03-26


Member since:

I'm kinda partial to NetBeans. It support quite a few languages, and I use it to program in C (no, not C++) and in Java. It can do PHP, Pytthon and Ruby as well.

The main reason I like it is because it will stay out of your way, and it will not move an existing codebase to some workspace if you import your existing code into NetBeans.

And, it's free too.


I couldn't get on with NetBeans on Linux when I tried it.

It seemed slow, ugly and not really filling a void that Eclipse may have otherwise left.

I've since rebuilt my programming workstation, so maybe I'll give it another try

Reply Score: 2

RE[5]: Comment
by Auxx on Tue 1st Dec 2009 14:58 UTC in reply to "RE[4]: Comment"
Auxx Member since:
2007-04-05

Latest NetBeans is tons of times faster then Eclipse in every scenario. I'm using both on multiple machines (from single core 1gb laptop to multi-core 4gb desktop with all the bells and whistles).

Yet NetBeans is not so overbloated with functionality. Sometimes something is missing...

Reply Score: 1

RE[6]: Comment
by Laurence on Tue 1st Dec 2009 17:21 UTC in reply to "RE[5]: Comment"
Laurence Member since:
2007-03-26

Latest NetBeans is tons of times faster then Eclipse in every scenario. I'm using both on multiple machines (from single core 1gb laptop to multi-core 4gb desktop with all the bells and whistles).


Well I've given NetBeans a try (ArchLinux) and it's definitly slower on my laptop (ASUS Core2Duo 1.3(ish)GHz and 2GB RAM) compared to Eclipse.

That's not to say there's a signficant different nor that either is all that snappy.

Overall, though, I'm still not impressed with NetBeans.
It just looks and feels like a slug (where as Eclipse, though still slow, it feels more intuitive to me)


I've also tried KDevelop4 - which is still a cluttered mess.
I can't develop applications in an environment that feels messier than the code I'm trying to impliment.


QT Creator, however, /has/ impressed me.
It's tidy yet (thus far) has most of the basic functionality I use.


So I think I'll stick with QT Creator for a while and see how it performs in the long term.

Edited 2009-12-01 17:24 UTC

Reply Score: 2

RE[4]: Comment
by Timmmm on Mon 30th Nov 2009 12:16 UTC in reply to "RE[3]: Comment"
Timmmm Member since:
2006-07-25

Yeah NetBeans is pretty good. It is Java-slow, but not as bad as Eclipse and has a much less insane UI.

KDevelop is ok, but again, the UI is just too cluttered and messy. And autocompletion never worked (maybe they've fixed that in KDevelop4).

Visual Studio is clearly one of microsofts best products, and one that they deserve high praise for. The autocompletion in particular is almost unparalleled. The only UI that comes close in my opinion is...

Qt Creator, which has autocompletion that works well (!), a simple UI, isn't a slow Java program, and has a very nice text editor (you can even get it to show whitespace which I think is rather nice). It is lacking in a few key features (e.g. you can't organise source files into folders), but despite this I think it is definitely the best C++ IDE available for linux.

Reply Score: 2

RE[5]: Comment
by Laurence on Mon 30th Nov 2009 12:42 UTC in reply to "RE[4]: Comment"
Laurence Member since:
2007-03-26

Can you build CLI apps with QT Creator or is it strictly for building QT GUIs?

Edited 2009-11-30 12:47 UTC

Reply Score: 2

RE[6]: Comment
by boudewijn on Mon 30th Nov 2009 15:09 UTC in reply to "RE[5]: Comment"
boudewijn Member since:
2006-03-05

Sure you can build cli apps. You can even build apps that don't use Qt at all, not even the non-gui QtCore library, but Qt Creator is really optimized for Qt-based projects. And if you are building a GUI app, you don't have to use the visual designer component, if you prefer you can just as well create all the widget hierarchy and layout by hand.

Reply Score: 3

RE[6]: Comment
by ebasconp on Mon 30th Nov 2009 20:36 UTC in reply to "RE[5]: Comment"
ebasconp Member since:
2006-05-09

Can you build CLI apps with QT Creator or is it strictly for building QT GUIs?


I actually use Qt Creator for my projects written using my own hand-made make files and it works like a charm.

Reply Score: 2

RE[5]: Comment
by boudewijn on Mon 30th Nov 2009 15:15 UTC in reply to "RE[4]: Comment"
boudewijn Member since:
2006-03-05

KDeveloper4's insight in your code, and consequently its autocompletion and tooltipping is really great these days. And Qt Creator has progressed quite a bit beyond the phase when it couldn't show the folders your code is organized in.

Reply Score: 3

Like what?
by gfolkert on Mon 30th Nov 2009 13:23 UTC in reply to "RE[2]: Comment"
gfolkert Member since:
2008-12-15

"there are many better editors out there then what ships in studio.

What like?
"

EMACS?

Come on... there are so many things it can do.

And isn't UNIX something the runs as a process managed under EMACS?

I assume this "Windows" you speak of would also be a process managed under EMACS.

Cheers.

C-x,C-c

Reply Score: 1

RE[3]: Comment
by google_ninja on Mon 30th Nov 2009 13:50 UTC in reply to "RE[2]: Comment"
google_ninja Member since:
2006-02-05

When it comes to IDEs, IntelliJ IDEa is my favorite out of what I have used. IMO the thing that studio does hands down better then anyone else is debugging, but things like refactoring, unit testing, and code generation is either lame or non-existant, and I wouldn't even consider it in the running for best without another commercial addon like Resharper, or CodeRush.

By editor, i meant just the editor bits, not the full IDE. My favorite editor out there is textmate, it has the best highlighting/indentation I have ever seen (except for maybe emacs), its code generation features are the best I have ever used (very fine grained and template driven), and great code navigation features. It is basically the useful bits of emacs if it were designed today, and used ruby instead of lisp.

On windows, my favorite is the e-texteditor, which is basically a clone of textmate that is missing a few things (including polish), but has additional things (like an implicit version control system).

On linux, I find it is a bit more sparse. I am definately a vim guy over emacs, if you want a great vim setup to start with, search github for scrooloose, and build off of what he has going. I consider vim an invaluable skill for any programmer, just due to how it is installed on pretty much every unix machine, and its great ability to jump around code, or munge files using macros. I have tried emacs, but the whole key chord thing is a bit much for me, and I find the learning curve (while not as steep) is much longer then vim. One I am watching very closely is redcar, which is another textmate clone (see a bit of a trend here? ;) ), but is pretty far from being done. Also, e is in the middle of getting ported, but it is not done yet either. Currently, I just use gedit with a whole boatload of plugins.

All that to say, if you do java stuff, I would highly recommend IDEa. If you venture into the ruby/python world, check out textmate or one of its clones.

Reply Score: 2

RE[3]: Comment
by OpenGLCoder on Mon 30th Nov 2009 15:57 UTC in reply to "RE[2]: Comment"
OpenGLCoder Member since:
2006-10-17

Build the QT SDK using Visual Studio and install the QT VS-Addin from Nokia. Then, You can program in Windows using VS/Qt and using CMake, compile your program on Linux and Mac OS X.

Reply Score: 2

RE[4]: Comment
by Laurence on Mon 30th Nov 2009 23:26 UTC in reply to "RE[3]: Comment"
Laurence Member since:
2007-03-26

Build the QT SDK using Visual Studio and install the QT VS-Addin from Nokia. Then, You can program in Windows using VS/Qt and using CMake, compile your program on Linux and Mac OS X.


That's not going to help with my CLI apps with POSIX threads though.

I deliberately try and code as close to ANSI C++ as I can for code portability, but my point was I don't want to program in Windows as I pretty much use Linux for everything else.

As a Linux user - to pay for a Windows licence just so I can write apps for Linux seems like madness.

Reply Score: 2

RE[3]: Comment
by boldingd on Mon 30th Nov 2009 18:12 UTC in reply to "RE[2]: Comment"
boldingd Member since:
2009-02-19

Just because someone has to say it, I really like Vim.

I don't really like Eclipse or NetBeans, for a variety of reasons. I'm using QtCreater now, and it's one of the better (and lighter, I think) IDE's that I've tried... but I would still prefer to be working in Vim if I could (my managers are insistent that I use QtCreator). That, and I don't know that I'd use QtCreator if I wasn't working with Qt.

JEdit is nice, especially after you install a few plug-ins; I think it's worth a try, at least. And Kate is nice, if you're working in KDE.

But I'm a fairly novice programmer, I've only been out of school and in the work force about 13 months.

Reply Score: 3

Wrong idea of 'Graphical Programming Environments'
by BigBentheAussie on Mon 30th Nov 2009 09:41 UTC in reply to "Comment"
BigBentheAussie Member since:
2008-03-29

I think some concepts from original article are being lost here.

When the MS folk talk about Graphical programming environments I do not believe that they are talking about an IDE where you write code, but rather are talking about manipulating graphical concepts/shapes to create program flow. I am not a big fan of visual designers, that make programming sorta like using Visio to write code stubs. Its not much of a leap that graphical shapes could be made to define actual instructions, that would normally have been coded(as text). I am sure there would be frameworks that do that. Indeed, I have seen IDEs for youngsters that define instructions by the manipulation of graphical metaphors.

I believe every tech has its place, and caters to a particular audience. For instance, I am creating a graphical rules generator for a non-techie audience. I wouldn't expect a hardcore programmer to be pleased to use it, but for an audience of business managers or business analysts it eliminates the need to know any specific language syntax or technology framework. These rules could quite easily be understood or manipulated by anyone, and can be domain specific. Incidentally, for my rules engine, the rule designer is optional and you can write the code by hand if you prefer, but this opens up room for error and really requires a knowledgeable programmer.

Reply Score: 1

Too vague.
by JMcCarthy on Mon 30th Nov 2009 00:24 UTC
JMcCarthy
Member since:
2005-08-12

I'm not entirely sure what's being talked about here, but if they're simply referring to programming environments then I kind of agree.

Notepad is a little too ascetic for me, I use emacs. I think a decent shell + text editor + standard *nix utilities are the pinnacle of software development, no doubt they're harder to master, but when you do, there isn't a GUI IDE that I know of that can match them in speed, ease of use, or features, and I'm fairly familiar with Visual Studio, XCode and have had the occasional foray with Eclipse & NetBeans.

When I write GUI programs though, I will use Qt Designer or Glade. The lines seem kind of blurred to me, but I wouldn't consider these programming tools, more like design.

Reply Score: 5

As always, it depends
by Sodki on Mon 30th Nov 2009 00:43 UTC
Sodki
Member since:
2005-11-10

There are two very different subject here, programming and optimization:

1. Programming

When people program, they mainly have one goal: making stuff work, preferably in a future-proof way. The way you achieve that is your call. There's no doubt that there are several programming tools that can help you along the way, such as syntax highlighting. No one can say that the visuals hints in syntax highlighting are a bad thing. There are also lots of cool stuff you can do to help you better deal with your code, like code folding, but that kind of stuff is independent of whether you are using a graphical or a text-mode editor. GNU Emacs can do most of the stuff that Eclipse does, but in a different way. Which way is the best for you depends upon you.

1.1 More on programming tools

When we talk about programming tools, we can also talk about code generation tools. For me, using a WYSIWYG to build non-prototypical HTML is abhorrent! Most of the time it makes the code horrible and unmanageable! On the other side, Glade for GTK+ is kind of nice. You decide.

2. Optimisation and high level languages

Early optimization is the root of all evil.

There's a place for high and low level languages. The most reasonable thing to do is use high level languages for prototyping and building the application as fast and as easy as possible. Then, if you feel there's a part of your code that needs to perform better, you can optimize it in different ways, even by using another language.

But you have to think before you build stuff! Optimization is less about code and more about algorithms. There's no point in using a low level language, doing manual memory management and performing every thick in the book to save a few CPU cycles when your approaching the problem in the wrong way!

I really, really, don't believe that code will be manually optimized for CPUs again, except in very specific cases. Developers' time costs money.

Reply Score: 2

RE: As always, it depends
by google_ninja on Mon 30th Nov 2009 05:23 UTC in reply to "As always, it depends"
google_ninja Member since:
2006-02-05

But you have to think before you build stuff! Optimization is less about code and more about algorithms. There's no point in using a low level language, doing manual memory management and performing every thick in the book to save a few CPU cycles when your approaching the problem in the wrong way!

I really, really, don't believe that code will be manually optimized for CPUs again, except in very specific cases. Developers' time costs money.


Thats pretty much how the ruby world works. You write your apps, find performance hot spots, then write those in c and call out to them.

Reply Score: 2

RE: As always, it depends
by ovigui on Mon 30th Nov 2009 19:45 UTC in reply to "As always, it depends"
ovigui Member since:
2007-01-31

Just looking at the quote...

Premature optimization is the root of all evil. - D. Knuth

Don't forget the counterpart:

On the other hand, we cannot ignore efficiency. - Jon Bentley

In my opinion it is really a problem of using the right tool for the problem. Choosing the right language for the level of efficiency you expect to need.

I personally think that the whole "let´s invent a language that solves everything" is the wrong approach. The right approach is being able to jump, inside the same system, from higher levels of abstraction to lower levels, while trying to keep it as simple as possible. For example I really like the Objective C way (even though it is not perfect) of being able to write using a flexible object engine, while jumping to plain C in some places... and then going down to intrinsics/assembler were needed. And being able to go even higher-level with things like F-Script to prototype and make tests is not bad either.

BTW: The title is quite sensationalist with that "Notepad" reference. It would be more like emacs/vim + shell + scripts. Or just another the monolithic way (IDE) versus the set of tools that work together... and you will basically find the people of the *N*X way in the second (the right ;) ) side. But even then, in the article linked they were talking about a completely different issue.

Reply Score: 1

real programmers
by puelocesar on Mon 30th Nov 2009 00:59 UTC
puelocesar
Member since:
2008-10-30

Notepad? Didn't you guys read xkcd?? Real programmers use Vim ;)

On a more serious note, they really use notepad? I find that difficult to believe.. You know, there a plenty of good text editors for programmers out there.. I can't even imagine programming in notepad after knowing textmate or even gedit with gmate enabled...

Reply Score: 2

RE: real programmers
by SuperDaveOsbourne on Mon 30th Nov 2009 01:03 UTC in reply to "real programmers"
SuperDaveOsbourne Member since:
2007-06-24

Real programmers use ed, and resort to vi or emacs if they must. Its a dying breed, but worth reading about in history books.

Reply Score: 3

RE[2]: real programmers
by mintar on Mon 30th Nov 2009 09:35 UTC in reply to "RE: real programmers"
mintar Member since:
2008-09-26

Real programmers use ed, and resort to vi or emacs if they must. Its a dying breed, but worth reading about in history books.


No, REAL programmers use cat!

I love XKCD.

Reply Score: 1

RE[2]: real programmers
by sorpigal on Mon 30th Nov 2009 15:35 UTC in reply to "RE: real programmers"
sorpigal Member since:
2005-11-02

Second.

ed is the standard text editor

See: http://www.dina.dk/~abraham/religion/ed-standard

Reply Score: 2

Little known fact about ed
by sakeniwefu on Tue 1st Dec 2009 03:00 UTC in reply to "RE[2]: real programmers"
sakeniwefu Member since:
2008-02-26

If you do the integer division of 0xED by VI you get 27(0x27). 27 is the decimal value of the ASCII code for ESC(033). Which is the key you press to access editor mode in vi.

Edited 2009-12-01 03:06 UTC

Reply Score: 2

RE[2]: real programmers
by AdamW on Mon 30th Nov 2009 15:58 UTC in reply to "RE: real programmers"
AdamW Member since:
2005-07-06

Real Microsoft programmers, on the other hand, use edlin. ;)

Reply Score: 3

RE: real programmers
by Delgarde on Mon 30th Nov 2009 01:50 UTC in reply to "real programmers"
Delgarde Member since:
2008-08-19

I can't even imagine programming in notepad after knowing textmate or even gedit with gmate enabled...


The software I work on, we've got files that wouldn't even *open* in Notepad...

Reply Score: 2

RE[2]: real programmers
by SanDiegoDave on Mon 30th Nov 2009 03:50 UTC in reply to "RE: real programmers"
SanDiegoDave Member since:
2009-09-29

I'm tempted to think that the use of the word 'notepad' was just supposed to me a metaphor, something everyone (non programmers alike) can relate to in terms of text editors. You guys are absolutely right though; no real programmers uses notepad - except for perhaps the occasional edit of a 20 line config file on a remote machine that doesn't have the permissions to install any other software.

Edited 2009-11-30 03:56 UTC

Reply Score: 5

RE[2]: real programmers
by bugjacobs on Mon 30th Nov 2009 08:01 UTC in reply to "RE: real programmers"
bugjacobs Member since:
2009-01-03

Back when I had eyesight to program I had to WRITE MY OWN Notepad just to get anything done !

Reply Score: 2

visual programming
by panzi on Mon 30th Nov 2009 01:10 UTC
panzi
Member since:
2006-01-22

I like good IDEs (like Eclipse and NetBeans might be some day in the distant future) that aid my way of programming. With auto completion, inline help, refactoring support, on the fly error checking and compiling etc. I think it is much MUCH faster to write e.g. a class (only data not procedures) in such an IDE as to model it with a fancy UML tool. I dream of a IDE that draws on the fly the UML representation to the classes I write. Then this tool should support "formatting" of these diagrams in a graphical way and save this representation information in an extra style sheet.

I think complex and detailed information is completely infeasible to do with pure visual programming. However, an abstract simplified graphical representation of things can tremendously help you understand the code. These days one first draws some UML diagrams and then writes code. Then there are requirements updates and the code gets updated but the diagrams aren't. This is annoying. Tools that automatically link code with diagrams (and provide good and easy requirements tracking and such) would be great.

So it's not text based programming Vs. visual programming, it's about how these two things are best merged.

Reply Score: 2

RE: visual programming
by SanDiegoDave on Mon 30th Nov 2009 03:55 UTC in reply to "visual programming"
SanDiegoDave Member since:
2009-09-29

I think you're completely right on this one. For example, autocompletion helps me get what I want programmed without having to spend extra time just memorizing and re-looking up all of the available functions - especially when some of them are overloaded in 20 different ways. In that way, the IDE is a lot like a really fancy text editor. When I think truly "visual" programming, I think dragging and dropping components onto a campus, and then using the mouse to select attributes, methods, and the like.

Reply Score: 1

RE: visual programming
by Beachchairs on Mon 30th Nov 2009 04:50 UTC in reply to "visual programming"
Beachchairs Member since:
2009-04-10

A really simple IDE is used kinda did that. It was bone basic (It didn't even support adding nonstandard libraries), but it worked.

It would auto generate UML (they did take some liberties with the standard, but it was pretty good), and show all the connections in your code.

The best part about it was it made for an absolute awesome debugger(which I never realized until leaving it). You could arbitrary instantiate a class, and do whatever you wanted with it: change variables, call methods, use at as the variable of some other object. While it was doing this, you could poke around and check its state (and the states of all objects it contained) in a nice graphical way.

Reply Score: 1

RE: visual programming
by google_ninja on Mon 30th Nov 2009 05:25 UTC in reply to "visual programming"
google_ninja Member since:
2006-02-05

I know visual studio does this, eclipse probably does as well.

For all practical reasons its a pretty useless feature. It is sort of nice in team meetings when talking about architecture though.

Reply Score: 2

RE[2]: visual programming
by shotsman on Mon 30th Nov 2009 08:16 UTC in reply to "RE: visual programming"
shotsman Member since:
2005-07-22

Check out some of the features that IBM use on top of Eclipse in some of their products like Process Server & Message Broker and you can see what can be done.
I use these almost daily in my job.(not at IBM I hasten to say)

For scripts etc, I find one of the meny excellet Text editors are great. I use UltraEdit on Windows.

Back in the day of VT05 & VT52 terminals on PDP-11's & VAXen, my editor of choice was Teco. You could even edit binary files with it.

Reply Score: 2

long live the IDE
by silix on Mon 30th Nov 2009 01:42 UTC
silix
Member since:
2006-03-01

runtime syntax highlighting can make the difference between avoiding errors that could have a great yet subtle impact on the code (or correcting them with little hassle) and having to debug an ill behaving application to realize a variable's or a method's name was mistyped
so, it's a true time saver for me ... that, the fact modern IDEs allow for in place code editing during debugging, and that with quick fixes immediate changes or refactorings are two clicks away - maybe it's just a saved second for each operation, but seconds become hours at the end of the week
now, for a sw designer who loves implementing elegant and efficient solutions written in readable code - but is unfortunately slow at typing (due to carpal tunnel among other things) and still makes typos, regained time is never enough - but any developer can benefit from even marginal time savings, since time not spent on mundane tasks is time that can be spent on the program itself, on the design patterns or on the algorithms behind it ;)


BTW, xkcd explicitly stated real programmers use butterflies (http://xkcd.com/378/ ) :-D

Edited 2009-11-30 01:46 UTC

Reply Score: 2

RE: long live the IDE
by siimo on Mon 30th Nov 2009 05:59 UTC in reply to "long live the IDE"
siimo Member since:
2006-06-22

Umm no they use emacs! Read the comic to the end.

Reply Score: 2

Comment by Yamin
by Yamin on Mon 30th Nov 2009 01:48 UTC
Yamin
Member since:
2006-01-10

No one should feel any sense of pride using notepad ;) Code completion and the like are wonderful tools given by any IDE.

That said, I don't think the MS programmers were talking about IDEs. They were talking about trying to remove the code from programming by GUI... maybe UML or whatever.

Unfortunately, I don't think we'll ever get there just because computer programming languages are really good at what they do. If you think about it, they are pretty basic structures (if, else, while, for...). If you can follow a flow chart, you can code it. Everything else is just knowing what functions to call, and of course there are advance concepts...

I taught computer science in high school. It's amazing the gap between students. Some get variable assignment. Some just don't. I don't think some people can make the mental model of variables, sequential steps... Once they get it though, it doesn't matter if its GUI or code.

That said code generation and the like is good for certain things. I can't recall the last time I manually coded a GUI. To specify a GUI, what better a tool than a WYSIWYG tool.

I'll say it this way. To specify logic and sequential steps, what better a tool than a programming language designed specifically for that ;)

Reply Score: 3

Say what?
by Soulbender on Mon 30th Nov 2009 02:09 UTC
Soulbender
Member since:
2005-08-18

"You used to have to be a good driver on ice or you would die. Now you don't have to pump your brakes anymore."


I'm no IDE jockey but that's a pretty damn retarded argument. Knowing how to use on obsolete technology doesn't make you a better driver.
However, with that in mind I'd like to argue that people who don't know how to manually hand-crank the engine aren't fit to drive.

Edited 2009-11-30 02:13 UTC

Reply Score: 3

RE: Say what?
by license_2_blather on Mon 30th Nov 2009 16:32 UTC in reply to "Say what?"
license_2_blather Member since:
2006-02-05

If that guy pumped his brakes on ice, he's lucky he didn't die.

But I'll agree that this is a dubious analogy, as having antilock brakes on a car assists in only one aspect of driving. You still can't be jerking the wheel, following too closely, or talking on your cell phone on ice (or in any other driving conditions). And ABS does not create traction where there is none.

Edited 2009-11-30 16:37 UTC

Reply Score: 1

I'm using text editors right now
by eantoranz on Mon 30th Nov 2009 02:13 UTC
eantoranz
Member since:
2005-12-18

I'm perfectly happy using vi and kate, really. It's not like I hate eclipse, but the plain text editors with highlighting get the job done for me right now.

Reply Score: 2

No Graphical Programming, Please
by frytvm on Mon 30th Nov 2009 02:23 UTC
frytvm
Member since:
2009-11-11

As someone who has seen and tried a little LabView (graphical programming language) code before, I hope that *never* becomes the way people program. The code looks like a messed-up circuit diagram, except the layout often has little to do with the actual meaning of the code. Also, using even simple data structures is awkward, not to mention trying to do any proper OOP.

Reply Score: 2

Crafting source code
by pjafrombbay on Mon 30th Nov 2009 02:35 UTC
pjafrombbay
Member since:
2005-07-31

My programming needs cover:

* Text and documentation - 50% (I use a text editor and HTML rather than a word processor (I probably need to get out more))
* HTML/CSS - 35%
* PHP - 5%
* Python - 5%
* JavaScript - 5%

All in a Windows environment. I have tried lots of different editors (I have an obsession :-) ) but keep coming back to plain text editors. I used to use TextPad but several year ago switched to EditPlus3. What these two have in common is a feature called "Clip Libraries" where the say HTML library is displayed in a column beside the main editing window. Double click on the "Paragraph" entry and the Clip Library inserts "<p></p>" at the cursor position or around selected text. This is a rather simple clip, but they can be much more complex.

Syntax highlighting and the ability to be able to run a script from the editor (HTML and Python in my case) is also very useful.

My ideal editor/IDE must have a clip library capability.

Regards,
Peter

Reply Score: 2

Makes sense
by malxau on Mon 30th Nov 2009 02:39 UTC
malxau
Member since:
2005-12-04

Isn't the point that Microsoft makes lots of low-level platform code, which needs to be highly optimized? Higher level languages make sense for Microsoft customers, but don't necessarily make sense for Microsoft itself.

Disclaimer: I write filesystem code for Microsoft, and I don't believe it would be feasible to do so in Visual Basic.

Edited 2009-11-30 02:43 UTC

Reply Score: 1

RE: Makes sense
by f0dder on Mon 30th Nov 2009 11:59 UTC in reply to "Makes sense"
f0dder Member since:
2009-08-05

...but it should be perfectly feasible in Visual Studio. I know the DDK discourages this and wants you to write makefiles and use the DDK build environment, but I've written driver projects with VS without trouble.

Heck, even if you insist on using the DDK build environment for building, you can still use the VS IDE for writing the code, and take advantage of features like inline help, intellisense, the code browsing features etc.

Reply Score: 1

RE[2]: Makes sense
by malxau on Tue 1st Dec 2009 18:19 UTC in reply to "RE: Makes sense"
malxau Member since:
2005-12-04

As others have indicated, the article (and osnews followup) are confusing language and editor/environment. My post relates to the former.

In terms of environment, in my group everyone uses their environment of choice. Many do use sophisticated IDEs. Personally I use vim. Completion would be nice, but it's not a deal breaker; the most important thing to me is to be able to navigate around code quickly.

Reply Score: 1

RE[3]: Makes sense
by clhodapp on Fri 4th Dec 2009 11:39 UTC in reply to "RE[2]: Makes sense"
clhodapp Member since:
2009-12-04

Have you tried hitting ctrl+n?

Reply Score: 1

vim all the way...
by binarycrusader on Mon 30th Nov 2009 03:46 UTC
binarycrusader
Member since:
2005-07-06

vim usually.

If I was writing graphical applications, I'd probably use NetBeans.

Reply Score: 2

Comment by kurgan2001
by kurgan2001 on Mon 30th Nov 2009 04:12 UTC
kurgan2001
Member since:
2008-12-31

In college we used emacs and just did command line programming. Nothing graphical at all which really pissed me off. All C, C++, Perl, Bash .. lots of system programming.

Don't get me wrong, it was interesting and taught me a lot, but I hate command line programming.

In my junior and senior college years I took some VB courses and loved em. Also took some web development classes where we used both notepad to make a simple web page and then used an actual WYSIWYG editor .. I liked the latter much better.

I'm now using Visual Studio 2008 for home stuff and Visual Studio 2003 at work (both for Visual Basic)

I'm definitely more a graphical programmer now since I've had to work with the command line for so long.

Reply Score: 1

Obviously...
by fretinator on Mon 30th Nov 2009 04:22 UTC
fretinator
Member since:
2005-07-06

Soldering iron, peek, poke

Reply Score: 4

dumb article, good discussion
by google_ninja on Mon 30th Nov 2009 05:34 UTC
google_ninja
Member since:
2006-02-05

At work, I use C#. It does a lot, but it also does a poor job in a lot of things, and takes a ridicules amount of computer power to do it.

On my free time I do stuff in ruby. I have yet to miss Visual Studio, code completion, languages filled with useless boilerplate, or compile times. At work, I really find it a pain in the ass when I open up a solution and it takes 45 seconds for my ide to load, or when it decides it is going to do something for awhile and not let me work, leaving me to watch a hard drive light flicker.

It all depends on what you are working on, and what you need to do the job. When you dont realistically have an option, IDEs are great. When you have a choice, I will chose an editor / shell + command line tools every time.

Reply Score: 2

RE: dumb article, good discussion
by f0dder on Mon 30th Nov 2009 12:04 UTC in reply to "dumb article, good discussion"
f0dder Member since:
2009-08-05

I'd choose a more powerful computer if that's what it takes to get the IDE running smoothly - for anything but small projects, I'd hate not having powerful code navigation features.

Visual Studio 2008 is a breeze even on a relatively modest computer (2GHz dualcore laptop (which means slow HDD) and 2GB ram). Compiling can take a bit of time for release builds of C++ code using lots of templates, but debug builds are usually just fine ;)

Reply Score: 1

google_ninja Member since:
2006-02-05

In textmate, command-T is a really great "fuzzy" search, and shift-command-T is go to symbol (class/function/etc). I actually prefer this, because my hands don't leave the keyboard.

I've got a 2.26ghz dualcore laptop with 4 gigs of ram and two (albeit slow) hard drives, and visual studio is enough to kick the fan up. At work, i have a quad core with two hard drives in raid-0 and 4 gigs of ram, and visual studio still takes ages to start up and enjoys to take breaks every now and then.

Reply Score: 2

This is what i use
by siimo on Mon 30th Nov 2009 06:04 UTC
siimo
Member since:
2006-06-22

(Primary a windows programmer)

Windows
--------
Visual Studio 2008 - C#, asp.net, C++
Notepad++ - for adhoc code editing where VS is overkill

Linux
------
Monodevelop - C#, Mono, .net
Eclipse - php, C++, java
Gedit - bash, for adhoc code editing where IDE is overkill

I never really had the time to figure out how to use emacs.

Reply Score: 2

RE: This is what i use
by XCoder on Mon 30th Nov 2009 07:39 UTC in reply to "This is what i use"
XCoder Member since:
2006-08-11

I'am too.

~90% Visual C# / .NET 3.5
~5% Notepad ++ and PHP
~5% Monodevelop.

Before .NET and VS I used Delphi/Kylix, and I wrote
a relative big GUI application with wxGTK/C++ and KDevelop.

IMHO the good IDE with code insight, integrated debugger, code formatter, refactoring is very important if you write a bigger code then "Hello word!". I can write C++ code with a simple notepad, but it is not too productive. The minimum is the "lightweight" C++ IDE (like KDevelop, Anjuta, Dev-C++, Code::Blocks).
I tired vi and emacs, but this things are very far from the current GUI/text editing standards.

The visual code generation tools like windows.forms designer also very important things. The hand-writed GUI code or xml or html are not too productive, and IMHO the html/xml is a very big backstep from the visual RAD tools (delphi, visual basic, etc) to "good old" Clipper or Turbo Pascal...

Reply Score: 1

I use vim
by spiderman on Mon 30th Nov 2009 06:40 UTC
spiderman
Member since:
2008-10-23

emacs is way too heavy and you usually have to install it whereas vim is always available. I hate both notepad and VS.NET. Using the mouse to write code is such a waste of time.

Reply Score: 1

Hating Visual Studio is like hating a nailgun
by nt_jerkface on Mon 30th Nov 2009 07:55 UTC in reply to "I use vim"
nt_jerkface Member since:
2009-08-26

Developing a Windows program in a text editor is an absolute waste of time.

Using a hammer instead of a nailgun for every job doesn't make you look manly, it makes you look like an amature.

Reply Score: 3

Four xterms and emacs
by strcpy on Mon 30th Nov 2009 07:39 UTC
strcpy
Member since:
2009-05-20

Four xterms and emacs. Toss something like version control system and cscope in, and you have everything that is needed. Yes, I am old and boring.

Reply Score: 2

It didn't come accross like this
by gedmurphy on Mon 30th Nov 2009 08:24 UTC
gedmurphy
Member since:
2005-12-23

I was at this session and this article isn't the way in which these topics were really discussed. It certainly wasn't a notepad vs Visual Studio.
I think the fact that any Windows programmer uses notepad to write their code is a complete myth. It's completley impractical.

It was more related to current .NET methods of writing GUIs and new programming methods which are starting to appear whereby your code is partially written from a UML model.
I think it's highly unlikely that this will ever take off.

I'm a Windows kernel developer and I use Visual Studio along with most other kernel devs. Does this mean we're graphical programmers too??

Reply Score: 3

Hmmm
by OSGuy on Mon 30th Nov 2009 08:39 UTC
OSGuy
Member since:
2006-01-01

So this guy wants to write software such as Word, Excel, Visual Studio etc in a plain text editor without auto competition, class browser, syntax coloring, create everything on the fly including adjusting X, Y, width height, SetRect, attach events on the fly by means of function pointers etc visualizing everything *rather* then using a RAD? So it is better to Ctrl+F + [insert text here] instead of double clicking and going directly to the event?

Hahahahaha.......yea sure.

You know, I was like that at one stage but when I started using RAD and when I saw how quickly I do things, I completely forgot about the plain text editors. Let me stress out, I know *exactly* what is going behind the friendly RAD so if I want I *can* build the GUI in run time but I choose not to. The only time I add GUI elements in run time is for plug-ins when I need to add a button or a text box somewhere to do stuff. Just because I choose to use a RAD, it does not make me a low level programmer. Instead, the guys that do *not* know how to use a GUI or are afraid of it are low level programmers as they are used to basic processing aka the command line - "basic".

With plug-ins, I attach my events in run time with a lot of dynamic_cast<Inherited_Class *>(pointer) casting but seriously building an entire feature pack program with a plain text editor? You have to be kidding me...

Well, I guess, everyone has his/her tastes but I personally believe using RAD tools speed up the development process.

Edited 2009-11-30 08:45 UTC

Reply Score: 2

RE: Hmmm
by boudewijn on Mon 30th Nov 2009 09:42 UTC in reply to "Hmmm"
boudewijn Member since:
2006-03-05

In my experience, initially, yes, it speeds up development. But the Borland type of RAD environment tends to encourage absolutely unmanageable code. I've seen that time and again, in my own Visual Basic 3 code way back in the previous century, in projects at companies I've worked for that used Borland C++ only last year. I've worked on projects that had classes of more than 10,000 lines of clicked-together event handling code that would call a dozen layers deep into other code, only to grab a reference to the 'form', grab a particular control and take a value out of it. It's too hard to keep track of the general design of a clicked-together applications.

I think Qt got it right here: a visual tool to click together your interface, and separate C++ files for all the logic, event handling and so on. Add a good, light-weight IDE like Qt Creator, and I'm set to work on big gui applications. (Though I'm unable to teach myself to compile and debug inside the IDE, I only use it as a glorified editor.)

As for uml and case tools that do code generation: those Microsoft programmers are right. It's impossible for a human to successfully keep track of a big project that's defined visually. The biggest monitor is too small for that, and besides, humans don't work that way.

Reply Score: 3

editor with autocomplete
by l3v1 on Mon 30th Nov 2009 09:21 UTC
l3v1
Member since:
2005-07-06

Generally speaking all I nead is a good lightweight IDE with very good autocomplete. On Windows - for practical reasons - this is vstudio + visual assist for me. On Linux I generally use Netbeans and KDevelop. Versioning integration is not a necessity, since there are good tools for that both on Windows and Linux. (I'm only talking about Win and Linux here, because these are the ones I deal with regularly.)

Visual/graphical tools as programming aids - I think of them just like that, aids, nothing more, nothing less. I don't like people who spend weeks only by drawing up stuff, saying that the coding part is the easiest, I always called BS on that. A good coder needs a good system overview combined with good algorithmic and coding skills. Any visual stuff can help, and is OK, but I'd never take them for more than helping tools.

And what are your thoughts on code optimisation? Will it become popular again?


It never left popularity. It's just visual kids don't care about them. That's a big difference. It's a drawback of forcing posh high level managed languages on new coders, who in return sometimes even despise lower level coders. For me, it's always the result that counts, and not all goals are about quickly throwing together fancy high level code. In my area algorithmic stuff has more importance - let's say 85% of total development - so I couldn't care less about managed and graphical and whatnot stuff.

Reply Score: 2

Business object vs SQL
by spiderman on Mon 30th Nov 2009 09:54 UTC
spiderman
Member since:
2008-10-23

It's like using BO vs using SQL. Anyone who know SQL will find BO unusable beyond very basic queries, and anyone who does not know SQL wouldn't use anything but BO and do anything beyond basic queries. And yet BO has its place because the coders know nothing about business and business men know nothing about coding.

Reply Score: 2

Visual Studio name
by contextfree on Mon 30th Nov 2009 12:30 UTC
contextfree
Member since:
2009-06-01

I think some nonprogrammers are maybe under the impression that programming in Visual Studio means "visual" programming with diagrams or something like that. While it does include visual designers for certain things -- most notably GUI forms, but also database schemas for example -- most developers who use Visual Studio, despite the name, spend most of their time in it editing program code text, just like any other development environment.

Reply Score: 1

RAD
by REM2000 on Mon 30th Nov 2009 13:32 UTC
REM2000
Member since:
2006-07-25

Im used to the RAD environment of Delphi, i am used to my two stage approach of designing the UI via mouse and WYSIWYG approach and then coding through the IDE.

HTML however although i use dreamweaver, i tend to use dreamweaver as a color coded notepad, i don't use the WYSIWYG for designing web forms and just use the code view.

It's really horses for courses, everyone will have a slightly different approach based on their own working and past, there is simply no way to say which is right. However i do agree with the Microsoft developer, that all developers when entering a professional environment should have knowledge of business practices such as UML.

Reply Score: 3

RE: RAD
by systyrant on Mon 30th Nov 2009 14:50 UTC in reply to "RAD"
systyrant Member since:
2007-01-18

I like aptana studio for html and php coding. The best part is it's free. ;)

Reply Score: 2

osn
by Adam S on Mon 30th Nov 2009 14:38 UTC
Adam S
Member since:
2005-04-01

FWIW, OSnews was written entirely in Programmer's Notepad[1] and SubEthaEdit[2]. Every character, with the exception of the reusable libraries like jQuery and Kroc's CSS, was written by hand.

[1] http://pnotepad.org
[2] http://www.codingmonkeys.de/subethaedit/

Reply Score: 1

RE: osn
by systyrant on Mon 30th Nov 2009 14:53 UTC in reply to "osn"
systyrant Member since:
2007-01-18

Those look like pretty nice editors.

Reply Score: 2

As to the meanings...
by Almafeta on Mon 30th Nov 2009 16:00 UTC
Almafeta
Member since:
2007-02-22

As to the different meanings in the article:

"Graphical programmming" as in writing up a diagram (UML or otherwise) and generating a program from there: People have been promising this since the Atari ST was new. I don't see anyone using this. But if I heard about a graphical programming tool which got good reviews from coders I trust, I'd give it a shot. An ideal graphical programming tool would be good at churning out prototypes - a perfect graphical programming tool would let a bunch of us just gather around together, and over the course of a long "design" session, hash out a rough but functional prototype so we all at least know where we're going with something.

"Graphical Programming" as in using an IDE: Obvious. Sure, you CAN program by using a seperate text editor, formatter, compiler, refactoring tool, version control system, et multiple cetera, each of which has their own unique commands and interface, each of which requires running another program... but why would you DO that to yourself? I don't see why anyone would be that masochistic, unless of course their jobs required them to work in such an counterproductive way.

"Graphical Programming" as in providing a user interface: Obvious.

Reply Score: 3

RE: As to the meanings...
by spiderman on Mon 30th Nov 2009 16:20 UTC in reply to "As to the meanings..."
spiderman Member since:
2008-10-23


"Graphical Programming" as in using an IDE: Obvious. Sure, you CAN program by using a seperate text editor, formatter, compiler, refactoring tool, version control system, et multiple cetera, each of which has their own unique commands and interface, each of which requires running another program... but why would you DO that to yourself? I don't see why anyone would be that masochistic, unless of course their jobs required them to work in such an counterproductive way.

Because you have more control and usually more power with the tools that are best at what they do.

Reply Score: 2

RE[2]: As to the meanings...
by boldingd on Mon 30th Nov 2009 21:06 UTC in reply to "RE: As to the meanings..."
boldingd Member since:
2009-02-19

I agree completely. I've never really found it so horrible to have an xterm open next to Vim, and just alt-tab over to it and run make or gdb there.

I don't mind other people using IDEs, I simple don't benefit much from them.

Reply Score: 2

Modern programmers are rare
by Shannara on Mon 30th Nov 2009 16:04 UTC
Shannara
Member since:
2005-07-06

I must be one of those rare breeds called a modern programmer. You see, a modern programmer doesn't care what tools they use. As long as the job gets done as swiftly and bug-less as possible.

Notepad or visual? It doesn't matter in the real world.

Reply Score: 2

Visual Programming
by cwaig_g on Mon 30th Nov 2009 16:42 UTC
cwaig_g
Member since:
2009-11-30

Apple have shipped a couple of "visual programming" type tools (as opposed to IDE's, which are just vi-with-pretties).

Automator (visual equivalent of shell scripting), and Quartz Composer (for graphics type stuff). They're ok, I guess...

It's worth noting though, that the electronics industry have done "visual programming" for decades (think - circuit schematics), and found that as a paradigm it didn't scale to modern large scale designs (it's only found as the board/block level these days) - hence the rise of Verilog and VHDL for complex chip design work. I suspect the same is true with software - it's ok for block level modelling but virtually useless for detail implementation.

And for the record, the king of editors / ide's is KScope - it does code navigation, but apart from that it stays out of the way...

Reply Score: 1

Interesting
by license_2_blather on Mon 30th Nov 2009 16:56 UTC
license_2_blather
Member since:
2006-02-05

I've been reading the comments here as much to see what people are using for editors these days as anything. I've casually used vi and emacs (and their knockoffs vim, pico, joe, mg, etc.) but haven't done enough programming to really have learned their power features. I prefer emacs, having used Wordstar as my first word processor, but I learned enough vi to get around on some of the commercial Unix systems I used that had it (but not emacs) installed by default.

The only IDE I've used is the VB one in MS Office apps (to write macros). It's helpful in some ways, as I neither have the spare RAM nor the desire to keep the VB object hierarchy in my head, but in some ways it gets in my way. I've also used Scite, as an example of a "modern" highlighting text editor, and like it OK.

As for "graphical" programming, it has its place. Most process control systems now use some form of connect-the-blocks-and-fill-in-their-parameters development tool. You are not going to write databases or search engines or whatnot with these. But for the problem domain they serve (process control), they work, particularly for the non-programmer or troubleshooter who needs to understand the function of the software, but doesn't necessarily write much of it.

Platform-specific code optimization: I agree that this will make a comeback. Aside from the finite lifetime of Moore's law argument, the other key here is that Moore's law says nothing about electrical power budget. As more computing gets done on extremely-low-power devices, this optimization will have to happen to provide a decent user experience (poke around on your average Windows Mobile phone if you want justification).

Reply Score: 2

RE: Interesting
by cerbie on Mon 30th Nov 2009 19:37 UTC in reply to "Interesting"
cerbie Member since:
2006-01-02

Ideally, platform optimization will take on a new look, though. I'd like to hope that we'll get more programming tools that directly target other programming tools (data description and functional languages->imperative languages->[aggressive optimization-friendly realm]->hardware), to help make the move from high abstraction to optimizing for a certain piece of hardware a smooth transition, allows a total rewrite of the optimized part to be an easy task, and one that doesn't favor premature optimization as an accepted part of design.

Again and again, new things make the same C-like mistakes of forcing the programmer to manage small details of an algorithm's implementation upfront (limiting the compiler way too much), or the academic-friendly mistake of leaving it 100% to the compiler (limiting the programmer with knowledge of how things should work, and a need to get it faster).

Edited 2009-11-30 19:39 UTC

Reply Score: 2

Uhm...
by Thom_Holwerda on Mon 30th Nov 2009 17:31 UTC
Thom_Holwerda
Member since:
2005-06-29

Just a note for those to whom it wasn't obvious: the Notepad reference was just a joke. Don't take it literally.

Reply Score: 1

Not all its cracked up to be...
by TemporalBeing on Mon 30th Nov 2009 19:24 UTC
TemporalBeing
Member since:
2007-08-22

Yes - as most have said, there seems to be a couple lines running:

1) Notepad/Vi/Emacs/etc vs. VS/Eclipse/NetBeans/etc

- per IDEs, sadly VS seems to be in its own class. Qt Creator is shaping up very well, and will come to be a good competitor, but nothing else really matches. Eclipse is great, but only works 100% for everyone if you are only using Java; CDT being very hard to setup and get working. (And yes, I've tried recent CDT installs! I have yet to get CDT to compile anything.)

- I've taken more to using Vim/Gvim now. I like having Intellisense when it works; but most of the time even if I'm only programming Win32 stuff under VS it's broken. No worry about that with Vim/Gvim - just open up the header in another window (:above split <header>).

2) Drag'n Drop Programming

- This will never really catch on - at least no time in the immediate future. Sure you have some apps that do this and, as the article and summary noted, they work on a small scale, and fail miserably at a large scale. For this to work, you have to have some really great AI built-in to figure out the connections and make reductions in the logic to figure out what the program is really suppose to do - make connections that are required even when the model didn't show it. Needless to say, such an AI is decades (possibly centuries) away if it ever comes about.

- UML doesn't help.

3) Timing - aka managed vs. unmanaged

This already broke the java model of throw more hardware at it - relying on the CPU to increase as such, and then to have Intel/AMD/IBM/etc break the model by splitting a single processor into two at about half the original speed. Yep, they're probably right - the time will come when it will be necessary to remove abstraction and move back towards more detailed programming, with better optimization by the programmer to start with. Sure the compiler can figure out certain things - like how to optimize a loop; but it can't tell what the program as a whole does to optimize it such. For example - optimizing the comms between two threads; impossible for a compiler to do, and just a bit of work for the programmer. Even locking, semaphores, different kinds of shared memory - not things easy or even necessarily possible for the compiler to determine. But most programmer today don't know the difference (sadly).

Resources, while not scarce, are not limitless either. True not every program needs to be perfectly optimized, many can get away with 50% optimization or less. That doesn't mean that programmers need to ignore optimization though.

For example - MS made a big mistake in several areas by using bad algorithms (bubble sort). If they had paid attention and used a better algorithm (e.g. quick sort) they would have had better performance and gotten more life out of the code. In other areas though, they've killed performance - for example, opening Windows Explorer today (WinXP SP3) takes a lot longer than it did 8 years ago (Win2k) - why? B/c Windows Explorer has to search for every device it is suppose to show, and go through a whole list as opposed to doing proper caching with quick lookups.

Reply Score: 2

It depends
by henno on Mon 30th Nov 2009 19:35 UTC
henno
Member since:
2009-06-25

on the OS: on Linux: vim, Mac OS X : vim for command line tools, XCode for graphical stuff, Windows: Visual Studio (but nothing fancy there, nothing graphical, usually). I'm thinking of trying out Eclipse on Linux. All C code. For scripting (Perl, shell), just a text editor that has code highlighting, preferably vim.

Reply Score: 1

Interpretative dance...
by Slambert666 on Tue 1st Dec 2009 03:19 UTC
Slambert666
Member since:
2008-10-30

Snover joked that programming is getting so abstract, developers will soon have to use Microsoft's in-air motion sensor game controller for the Xbox, dubbed Project Natal, to "write programs through interpretative dance."

LOL

Reply Score: 1

Most people misleaded by the article
by dvhh on Tue 1st Dec 2009 05:38 UTC
dvhh
Member since:
2006-03-20

I think that MS senior dev were refering to visual studio lastest incarnation where it tried to do some drag and drop programming with the "windows workflow fundation".
This on one hand can be fast and convenient provided you have the correct workflow element for your task, but on the other hand as it would be use by incompetent dev that follow stupid project requirement, you could end up with a very graphical spaghetti code (having edited SQL server DTS package I know what I meant, see [ http://www.computerways.net/images/projects/SQL2000DTSPackage.jpg ] for example).

I hate VB with every bones of my (weak) body, but one fellow pointed me that sometime it could be useful for fast prototyping or putting a simple interface to more low level library.

Now my 2 cents on IDE or notepad, ok notepad (or any equivalent) should be enough, yet having some luxury could accelerate or productivity (syntax coloring is my weak spot, auto completion is optional and should work well ).
I worked with visual studio which hide so much things from dev that they might end up using stuff they don't understand, Eclipse and Netbeans are not so bad themselves ( especially in java refactoring, something you probably never do with notepad or equivalent ).
So heavyweight IDE have their use, through multiple wizard they make us work faster while trying to reduce human mistake ( which can be defined as productive )
I mainly use SCITE [ http://www.scintilla.org/SciTE.html ] or scintilla based IDE (geany [ http://www.geany.org/Main/HomePage ] is fast and work well enough on linux, on windows, IDEs are a little bit more stupid with utf-8 handling I ended up with flexedit [ http://www.flexedit.org/ ]).

Edited 2009-12-01 05:48 UTC

Reply Score: 1

If you need someone's help...
by Ciaran McCarthy on Wed 2nd Dec 2009 18:14 UTC
Ciaran McCarthy
Member since:
2009-12-02

I used to do lab demonstrations in a course called Algorithms and Data Structures for a university.

I had one guy who would write their code - Java, mind - in Notepad and then compile it in the command prompt. If his code didn't work, he'd ask me for help fixing it. The only debugging information came from about sixty System.Out.Println() calls in the code, and any exceptions it might have thrown.

Please, people! If you're writing code and need someone's help, have the decency to put it in a proper IDE or use a debugger. It will make a huge difference to that poor soul's day.

Reply Score: 1