Jump to content




Recent Status Updates

  • Photo
      30 Sep
    rhossis

    laptop hard disk seated beneath motherboard but with no access panel. 7 hours to replace :(

    Show comments (3)
  • Photo
      19 Sep
    Chall

    I love it when you go to write a help thread, then while writing, you reach an enlightenment, and figure it out yourself.

    Show comments (3)
View All Updates

Developed by TechBiz Xccelerator
Photo
- - - - -

Debate: Are drag'n'drop / automatic programming tools good or bad for the industry?

debate

This topic has been archived. This means that you cannot reply to this topic.
28 replies to this topic

#1 BenW

BenW

    CC Devotee

  • Community Manager
  • 976 posts

Posted 02 March 2013 - 02:05 AM

One of the best ways to see how a language is progressing is to look at the number of creation options for it.

 

A new or relatively rare language will usually only have a simple IDE, often just a text editor with syntax highlighting. As the language gains popularity, new authoring options come out which do more of the work. For example, as the internet became mainstream, HTML editors started to allow for WYSIWYG work, where designers could simply drag and drop stuff on screen and the editor would generate the HTML for it.

 

More recently, tools like MIT Scratch allow for full dragand drop programming, with no need to learn syntax or structure at all. This type of programming is becoming more readily available for other programming languages, and makes it easy for non-programmers to build games, apps, websites, and so on.

 

Is this ease of use a good thing? Does it benefit everyone to have more people able to create their ideas? Or does it lead to unskilled users churning out junk, reliant on a program understanding concepts that they don't?

 

Debate away! And I'll post my own thoughts later in the thread :)


fss_overall.png

 


#2 BlackRabbit

BlackRabbit

    CodeCall Legend

  • Expert Member
  • PipPipPipPipPipPipPipPip
  • 3,472 posts

Posted 02 March 2013 - 03:47 AM

Mmm, Wysiwyg, RAD, Drag and drop, they are all kind of the same.

 

The less you type, the less specific you are, in other words, there is think that obviously can be Rapidly coded, modeled in Wysiwyg or formed by draggings and droppings, all those correspond to easy and trivial tasks.

I wonder how will iconify and drag complex processes, equations or whatever which either isn't easily visualized or requires fine tuning.

 

The day you can get a dumb to do good worthy program I will be scared, not job-wise but about computers start programing themselves and take over the world, since most of world's activity is on ciberspace nowadays.



#3 PurityLake

PurityLake

    CC Regular

  • Member
  • PipPipPip
  • 36 posts

Posted 02 March 2013 - 06:43 AM

Well tools like WYSIWYG etc. are good for companies that just want a generic site that looks decent but as you get into more in depth companies, drag and drop complexes become redundant as the engine is harder to work with than manually coding. Game and software companies will usually take advantage of libraries available to the specific programming language but in my opinion something like scratch can't do as good of a job, yet.

#4 Pally

Pally

    CC Addict

  • Senior Member
  • PipPipPipPipPip
  • 394 posts

Posted 02 March 2013 - 07:24 AM

Mmm, Wysiwyg, RAD, Drag and drop, they are all kind of the same.

 

The less you type, the less specific you are, in other words, there is think that obviously can be Rapidly coded, modeled in Wysiwyg or formed by draggings and droppings, all those correspond to easy and trivial tasks.

I wonder how will iconify and drag complex processes, equations or whatever which either isn't easily visualized or requires fine tuning.

 

The day you can get a dumb to do good worthy program I will be scared, not job-wise but about computers start programing themselves and take over the world, since most of world's activity is on ciberspace nowadays.

 

I agree, take for example Dream Weaver... sure you can make a webpage with it.. but damn take a look at what the html code looks like after your done or a few times editing your page its a train wreak with randon tags inside tags for no reason.

 

Consider another example.. assembly verses C, C translates down and is compiled into assembly... however when it comes to the C langauge GCC is considered a poor compiler in comparision to newer C compilers developed by Microsoft which translate to more efficient assembly equivalent.

 

So the point being... your code will be less efficient the further you distance yourself from the machine langauge/knowledge.

 

Final thought, if you program in a automatic programming tool, can we really trust an algorithm to choose the best algorithm for our programs?

 

 

To answer the original post: I suppose this type of software serves its purpose to allow anyone to feel like a super computer genius despite knowing much at all. I believe however that based on my above reasons the Con's kill the Pros for the industry...

 

I'll leave with some insight from James Gosling who said most programmers write code and say "i'll come back to this in the future and optimize these parts of the code", however James said he knows coming back to optimize code rarely ever happens so he always writes code that is overly optimized so it can stand the test of time. Thus deducing from his words I'd say filling the industry with junk code from these automatic systems will wreak millions of lines of crappy code that is automatically generate and just bog down the system.


Edited by Pally, 02 March 2013 - 07:37 AM.

Your Friendly Neighborhood Pally

#5 0xDEADBEEF

0xDEADBEEF

    CC Devotee

  • Senior Member
  • PipPipPipPipPipPip
  • 747 posts

Posted 02 March 2013 - 07:46 AM

I don't see them as a bad thing, in the general scheme of things. There is a lot of 'dumb' programming to be done.

 

In most applications alot of the coding is 'dumb' coding, code that doesn't really require fine tuning or performance metrics (as long as its not really really bad, its ok.) And code that's plain unfun to write. The core, infrastructure of an application is often the smart code and that is a small kernel of solid code in which to base the rest of the application around.

 

I often think the best structure is to have a tiered language, so that you can unlock the full potential, but then scale in the automation using building blocks from the previous tier. In effect your always working at the appropriate level.

 

In someways COM allowed this; you could go barebones in C++, slightly automated using VB, or application level using VBA. Now not saying VB&VBA are any good, but as a technology COM was pretty good.

 

The problem is often when these tools are missused, they have their place.


Creating SEGFAULTs since 1995.


#6 0xDEADBEEF

0xDEADBEEF

    CC Devotee

  • Senior Member
  • PipPipPipPipPipPip
  • 747 posts

Posted 02 March 2013 - 08:04 AM

I agree, take for example Dream Weaver... sure you can make a webpage with it.. but damn take a look at what the html code looks like after your done or a few times editing your page its a train wreak with randon tags inside tags for no reason.

 

Consider another example.. assembly verses C, C translates down and is compiled into assembly... however when it comes to the C langauge GCC is considered a poor compiler in comparision to newer C compilers developed by Microsoft which translate to more efficient assembly equivalent.

 

So the point being... your code will be less efficient the further you distance yourself from the machine langauge/knowledge. *1

 

Final thought, if you program in a automatic programming tool, can we really trust an algorithm to choose the best algorithm for our programs? *2

 

 

To answer the original post: I suppose this type of software serves its purpose to allow anyone to feel like a super computer genius despite knowing much at all. I believe however that based on my above reasons the Con's kill the Pros for the industry...

 

I'll leave with some insight from James Gosling who said most programmers write code and say "i'll come back to this in the future and optimize these parts of the code", however James said he knows coming back to optimize code rarely ever happens so he always writes code that is overly optimized so it can stand the test of time. Thus deducing from his words I'd say filling the industry with junk code from these automatic systems will wreak millions of lines of crappy code that is automatically generate and just bog down the system. *3

 

Some iterestings points

 

1) On the face of this, the point seems obviously true. But I think its murker than that. If we don't only define efficient as performance; then its not so simple. Often an efficient algorithm for a task will be efficient in ever language its implemented in, yes assembly might be the fastest, but the choice of algorithm is 99% of the efficency; being able to code the algorithm at a higher (more algorithmic) level means that you can look back at it and go, aha there's a better way of doing it; rather than huh what does this assembly do.

 

2) Can you really trust the programmer todo this? Ok, maybe you can trust yourself; can you trust a junor developer? How many programmers now pick up a HashMap in Java or Dictionary in C# and don't know how to even implement a hash map themselves? Do they know what Hash function is being run? is it efficient? etc..  But then again if you do implement an algorithm yourself, can you be certain is correct implemented etc...

 

3) This in my opinion is unwise. Now its stupid to code somthing that isn't reasonable efficient, but you can't really full optimise all your code and think it'll stay that way to the end of time. If when the program was developed there was two kinds of data, A&B, in the spec it says that this data will 90% be A and 10% B. You could specifically optimise your code for the A case, but if a few years after go-live the actual data spread turns into 90%B, then your code is now not optimal.


Creating SEGFAULTs since 1995.


#7 Yannbane

Yannbane

    CC Addict

  • Advanced Member
  • PipPipPipPipPip
  • 238 posts

Posted 04 March 2013 - 06:07 AM

I'll start by saying that in order to use Scratch you need to know both it's syntax and its structure. It does have them, just in a more visual format than text.

Now, off to the core... We're talking about two different things here.

First, you have Dream Weaver, WYSIWYG editors and such other programs aimed at increasing the abstraction layer and user friendliness. Well, they suck. I'm sorry, but this editor sucks too. I always switch it off and use BBCode. Both HTML and BBCode are standards meant to be used by regular people, not programmers and not people who study computers.

I've yet to see a good WYSIWYG editor that doesn't make me switch back to good old HTML.

Then, of course, there are things like PHP, compilers and templates in C++ - those are code generation methods as well. There have also been various studies into other code generation techniques in terms of self-writing programs and type systems etc.

At this point I'm not really sure whether I can clearly point out a criteria for discriminating those two groups other than efficiency of implementation (although PHP isn't exactly efficient) and the targeted audience... Both are oriented at content creation too.

Generally I think that automatic content generation is one of the most interesting topics of computer science, but it's very broad as well.

Also Evan - do you have some benchmarks to prove that Microsoft's compilers are better than GCC? AFAIK GCC is the most efficient compiler, but I could be wrong. What about when it comes to portability?

My blog: yannbane.com. I post about programming, game development, and artificial intelligence.


#8 0xDEADBEEF

0xDEADBEEF

    CC Devotee

  • Senior Member
  • PipPipPipPipPipPip
  • 747 posts

Posted 04 March 2013 - 06:15 AM

Yannbanne - its was Pally who mentioned the GCC thing rather than me.<br /><br />Although I have heard it from other sources that GCC isn't that great a compiler, nothing concrete (the guy that made Java mentioned that it wasn't a great compiler, but then took great glee at pointing out that Java could regularly beat it). But I don't really know tbh.

Edited by Evan, 04 March 2013 - 06:16 AM.

Creating SEGFAULTs since 1995.


#9 BenW

BenW

    CC Devotee

  • Community Manager
  • 976 posts

Posted 04 March 2013 - 08:01 AM

First, you have Dream Weaver, WYSIWYG editors and such other programs aimed at increasing the abstraction layer and user friendliness. Well, they suck. I'm sorry, but this editor sucks too. I always switch it off and use BBCode. Both HTML and BBCode are standards meant to be used by regular people, not programmers and not people who study computers.

An important point is that these programs are specifically designed for people who don't study computers, in order to allow them to work on projects they otherwise wouldn't be able to approach.

You're right that Scratch has some syntax to learn, but it's minimal compared to typing everything out yourself. The structure is more important - but syntax is what prevents many people from programming. It's easy to understand "if the user is pressing left, move the character left", but much harder to get the hang of writing enough code to make that functional.

There are a few auto PHP generators, similar in function to Dreamweaver. I used one a few years ago, though it didn't work as well as I'd have liked. It would have been decent for writing small scale database apps, less use for big projects like browser based games.

fss_overall.png

 


#10 Yannbane

Yannbane

    CC Addict

  • Advanced Member
  • PipPipPipPipPip
  • 238 posts

Posted 04 March 2013 - 08:12 AM

What I meant when I referred to PHP was that it was actually just an HTML generation tool. Quite an advanced one, but you get the point.

My blog: yannbane.com. I post about programming, game development, and artificial intelligence.


#11 WingedPanther

WingedPanther

    A spammer's worst nightmare

  • Moderator
  • 17,158 posts

Posted 04 March 2013 - 08:26 AM

I've seen both edges of this sword. Delphi makes creating a nice interface very easy with clean separation of display and logic.

 

Using RAD-PHP was something of a nightmare for me. If you were going with it's design methodologies, it worked well. Having to write MORE code or tweak MORE settings to get default HTML behavior, however, was rather annoying to me.


Programming is a branch of mathematics.
My CodeCall Blog | My Personal Blog

My MineCraft server site: http://banishedwings.enjin.com/


#12 PurityLake

PurityLake

    CC Regular

  • Member
  • PipPipPip
  • 36 posts

Posted 04 March 2013 - 11:00 AM

I've seen both edges of this sword. Delphi makes creating a nice interface very easy with clean separation of display and logic.

 

Using RAD-PHP was something of a nightmare for me. If you were going with it's design methodologies, it worked well. Having to write MORE code or tweak MORE settings to get default HTML behavior, however, was rather annoying to me.

 

I suppose it really depends on the project. Also some tools are more flexible that others but generally speaking if you want to control everything and add a lot of your own code it can usually be easier to write the code yourself, at least in my opinion






Powered by binpress