Quote:
Originally Posted by
wizard69 
Your absolute dismissal of this app is perplexing to say the least. I suppose that the people using Keynote to prototype users interfaces is too far out for you also.
If keynote was marketed as making it easier to streamline your logistics, sell more widgets, or helping you find a cure for cancer, just because you can make nice presentations about these topics, yes, I would dismiss it as I dismiss any tool that promises to bring software development to the masses, without requiring you to actually learn how to program stuff. Just like keynote does not help you to produce better content, a programming language or Application Inventor or whatever does not help you to solve the abstract problems involved in software development.
Quote:
The thing here is that open minds should evaluate a tool based on what it can do for them, simplify for them or otherwise get to an end product quicker. Maybe this isn't the optimal solution but frankly if it helps even to slightly reduce development effort it would we well worthwhile to have. Just as something like Keynote can replace sketch pads ans sticky notes so can an app like this find a role.
I agree with the basic premise, but let's not pretend stuff like mentioned in this article is anything new. It's old stuff and it has been for at least a decade, I've seen it all before. If you look at the evolution of conventional programming languages you'll see that the latest and greatest ones already reduced the amount of boilerplate code you have to write to a minimum, the SDK's and frameworks already solve almost any generic problem you'll encounter, the language constructs offered by the various modern languages already converged to a set that is more or less agreed on is useful, etc. Almost all advancements in programming languages you see today are about parallelism and how to make it easier to harness it without all the pitfalls, a topic the complexities of which are almost impossible to explain to someone without a pretty advanced background in programming and how computers work. Yet, with all the tools we have, writing good software is fundamentally still almost exactly as hard as 30 years ago. Less cumbersome, faster, and safer, but not much easier, at least not for anything besides GUI design. Trying to sugarcoat that fact by making your development environment more accessible by using more visual elements and activities has been tried before. It's too restrictive for almost anything non-trivial.
Quote:
That 90% number is just plain garbage. There are many business apps that don't require complex logic or massive efforts at abstract logic.
I may have overstated that a little but I still stand by my statement. Obviously not every piece of software consists of 90% business logic, but you still require application of abstract logic in some form or another for about any task related to writing it. Even if you are just hooking up a touch event to a button, having it increment some kind of counter, and triggering another event that plays a sound if the counter hits some value, you are applying abstract logic in it's simplest form. Increase the complexity only one level, say by adding a timer that starts when you first hit the button, runs for 10 seconds, and then only process clicks while the counter is running and the number of seconds elapsed rounded to the nearest second is even, is already taking things too far for most people. I'd love to see an example of an easy, visual way of implementing even something as trivial as this, that doesn't require you to learn about conditonals, arithmetic operators and control flow.
Quote:
No looking at iOS and the hipuge waste of time that goes into supporting basic UI elements I actually believe Apple could go a very long way to improving the position of the developer. We might actually get to the point where 90% of the effort goes to actual business logic. As it is now one spends far more time with UI development, antiquated approaches to user interface element handling and boiler plate code to drive the UI. Non of this pertains it self to business logic or abstract concepts.
The UI itself or the code implementing it does not pertain to business logic or abstract concepts, but the stuff you control and display using that UI and how it interacts behind the scenes does, and you have to think about it to do more than just GUI storyboarding. That said, I think iOS, Cocoa, CoreData and XCode already do a pretty good job at relieving you from writing boilerplate code for these kind of things. You can basically create a GUI, a data model, a way to connect the two, and all navigation between different parts of your application, without writing a single line of code. Again, nothing new here. Start using all these tools, and in no time you will find out you need background about abstract concepts such as data model entities and relations, or queries, how persistency works, about data types and how you display and manipate them, what the difference between a float and an integer is, and why you need both, why you want to normalize your data model, and so on. All abstract concepts that you cannot hide behind some kind of visual tool that decides everything for you based on some widgets you threw on a form.
Quote:
Well let's be honest that statement won't get you anywhere. The whole industry has revolved around building better tools, tools used by professionals mind you. A good tool can go a long way to helping you understand your code professional or not.
I'm glad you mentioned this, because I fully agree, and it's exactly this that has gotten me pretty far already. Over the years I think I've used at least 30 different programming languages, IDE's, compilers, platforms and frameworks. I'm not religious about the tools I use, not at the very least. When something better comes a along, I'm the first to evaluate it, if not because my current tools bother me, it would be out of curiosity or just for fun. I even bought my first iPad primarily because I wanted to learn objective-c, cocoa and iOS. So I'm not dismissing any tool that promises to allow you to write non-trivial programs without having to program out of conservatism, but just based on experience and observation. I simply don't believe in it.