Education

Poll: Would you work with an alternative development system?

Are you willing to try the less popular development platforms, such as Alpha Five and Agile Platform? If not, what is the primary reason?

I've written a lot about the OutSystems Agile Platform lately. There are a ton of other non-mainstream development platforms out there (e.g., Python/Django, Ruby/Rails, Alpha Five), and yet, many developers seem shy about trying these systems. I'm curious to know why this is the case. I suspect it is a lack of time, fear of the unknown, and concern about their career opportunities. Are you willing to try these less popular platforms?

J.Ja

About

Justin James is the Lead Architect for Conigent.

24 comments
Jaqui
Jaqui

they use the hardware is cheap development model and you know how much I [sarcasm] [b][i]love[/i][/b] [/sarcasm] that. :D

genotix
genotix

We're currently in the migration process of some legacy Informix 4GL applications connected to an Informix IDS database to an Outsystems .NET environment with an MSSQL database. At first we had the choice to either keep using the IDS database using e.g. a Linked server or migrate the data to the MSSQL database. Using a linked server can have some impact on the database performance and the step to migrating the data wasn't that hard. (this can be done either by creating unloads and process these using the BinaryData extension or use a linked server and a small application that maps the data) Because our import data didn't have referential constraints although it had (sofware based) relations we've decided to do an unload so we could manually intervene / cleanup the load files. One of the import files had a 129 Mb filesize, which is pretty hard to upload at once using a 'default' http request. All kinds of barriers and issues can occur in this process. We've decided to make a mechanism that imports every row of the import file directly in a text row of an MSSQL Temporary database table. Outsystems was used here to select the path and send out the SQL code to the SQL server. With that the import itself took place between only the MSSQL server and the filesystem where the file was stored. This raw data import in a non-logged temp table took about 10 seconds (yes 129 Mb in 10 seconds). From that moment on it was up to the Outsystems platform to process the raw data. After that we've created a timed process in order to handle the large raw-imported dataset. The process was responsible for splitting up each row in the temporary table into columns and importing it into the required table. This process took about 2.5 hours to handle the 680.000 records, searching for the required references , formatting the data and creating a valid database reference while inserting the row in the designated table. Also if a constraint can't be matched or a referenced record is missing this is logged in a separate table. Thanks to this method we could determine wether the entire import was successfull. As a nice to have, a little progress indicator was implemented, showing us it's progress and we also added an estimated time of completion. Thanks to the built-in date time functions, this was an easy step. Taking this all together we have been able to create a reliable and stable way of importing / handling larger datasets using the Outsystems platform.

ezslim
ezslim

I think you have to keep an open mind when choosing development platforms (and other things in life, but that is another blog). For me, I chose Alpha Five because I was convinced that an experienced Alpha Five developer could develop enterprise-class web applications in a fraction of the time when compared to mainstream web platforms. I was right. And what I see from Alpha's product direction is continued expansion of its capabilities and movement towards closer integration with .NET. When/if they have their rapid application development front-end generating .NET compatible code, look out...they'll be mainstream in a hurry!

dw0905
dw0905

In my opinion if you are a senior developer or in any way responsible for managing a development team, you must keep abreast of other technologies, and try and give some time over to evaluating the possible benefits of changing your development tools. Around 18 months ago my team were tasked to rewrite an extremely complex Insurance Administration system, and in so doing move it from a windows based fat client to a browser environment. We had already produced a browser based system for our brokers in Java, but did find the development costs extremely high, with a very long learning curve for new developers. Therefore I investigated various other tools ? Ruby, Wavemaker and Alpha 5. I liked ruby and could see some benefits in using it, Wavemaker seemed to be good, but after deeper investigation had its limitations. However, I did find immediate time saving benefits with Alpha 5, and so I invested more time with this product. Things have moved on a pace since then, with Alpha producing some excellent additions to their product (now on version 10.5). What is essential to me is the fact that the 4GL elements of this tool save you an enormous amount of time with the donkey work (i.e. creating CRUD grids, menu systems etc. etc.), but you can still get deeper into the code and modify to your hearts content if you wish. Also an essential element of Alpha is the implementation of Ajax callbacks, all with the developer not needing to do any complex code. This means that you can create browser applications that perform like desktop applications. However, if you do undertake to promote this kind of tool in a larger corporate environment, be prepared to defend your position. Traditional Java and .net developers will fight against it, but I have found that the way to win over people is to produce working systems far quicker and for less cost than the traditional tools allow. So in conclusion, I believe it is definitely worth evaluating other tools, and never discount small companies with bright ideas, for after all that's where both Microsoft and Apple started.

warpspace
warpspace

I've had experience with many of these systems, and I haven't been happy with performance. Perhaps because performance is an important part, but also because of bad experience with high-level functions not doing exactly what I want or expect them to. I would rather not spend so much time learning a new system properly until I know I can avoid such headaches.

apotheon
apotheon

I like to try new frameworks from time to time. As has already been pointed out, of course, inheriting a project does not provide the same opportunities to choose a new framework as starting one from scratch, and even when starting something from scratch it is sometimes not reasonable to try something new. Open source frameworks and those offered by the largest corporations are likely to be the first choice for almost everybody, and the only choice for the majority at least, for those reasons among others -- especially given that there's no license investment to try the open source frameworks like Rails. The exception is cases where something from a smaller company essentially invents a whole new niche.

Tony Hopkinson
Tony Hopkinson

Have a quick furkle myself, perhaps. As part of my job, unlikely I could come with a justification that even started to address the cost of switching. In fact so unlikely I'd expect to strike oil in backyard first.

ukdbmsone
ukdbmsone

One of the products that Justin mentioned in his poll, was Alpha Five. The web site is http://www.alphasoftware.com and the blog is http://blog.alphasoftware.com The product is designed for rapidly building secure web 2.0/AJAX apps against SQL databases with full reporting. If you are one of the first 10 people emailing marketing@alphasoftware.com and referencing this Poll - we will send you a full copy at NO CHARGE.

oldbaritone
oldbaritone

I've heard that one LOTS of times. And in most cases, I'm still waiting. When/if pigs have wings, they will fly.

apotheon
apotheon

Do you mean "callbacks" in the computer science sense of the term, or do you just mean that AJAX is "calling back" to the server?

Tony Hopkinson
Tony Hopkinson

whether the business is prepared to accept the constraints the environment imposes in return for an increase in productivity. A good developer will not resist having the donkey work taken off their hands, they'll welcome it so they can concentrate on adding real value. Wow features for us aren't the control glows when you move the mouse over it, they are someone important changed the requirement and you don't have to start again. For instance shifting to a document oriented OO or parallelisation / threading, even shifting to web based deployment..... So on the one hand you have Visual studio's data source wizards which work like they've been coded by a donkey, or parallel extensions which border on genius at the practical level required for all but very niche applications. Traditional .net developers :D There are still times when I consider the garbage collector to be inefficient never mind the bloat imposed by a huge framework. If quicker and cheaper is the goal, fair enough, better no chance.... There's no free lunch in any form of optimisation. You have a finite amount of resource and you target it at the highest value return, the medium and lower value aspects get starved. With the wonderful wizard of oz approach, if the focus shifts to another aspect in a future version you can easily end up throwing much of what you have away. I'll give you one guess at who will whinge most when that happens... Change is a given, so when will happen.

Tony Hopkinson
Tony Hopkinson

you tend to take the built in options, wizards and such. These are written to be easy to use and generic. One size fits all dumbed down approaches are always inefficient compared to a specific optimised solution. Yes it produces quickly, but it produces unmaintainable inefficient fragile crap. Learning how to make the environment sit up and beg takes a good deal of research and experimentation at the point you are at the steepest part of the learning curve and under pressure to produce. So lets take a wild guess at what it happens in this world of cheap, good enough and yesterday....

mozzello
mozzello

It's great to see how many developers defend their ideals so fiercely. I understand that the IT tools industry has a very bad reputation because of all the broken promises. Most of us have been burnt before by some "best-of-class groundbreaking technology-innovation" that was supposed to solve every problem (including world hunger and poverty). And then we quickly figured out that those tools were useless, incomplete and ended up by creating more junk and problems, leaving a trail of messy apps that someone now has to try to maintain. Been there, done that. However I think that most comments so far are actually wrong, because they're based on assumptions and bad past experiences. So, the last RAD tool you tried back in 2001 was extremely limited and generated crappy code? Who says that the new tools are like that? Some mention robustness, scalability and maintenance issues. But have you tried any of the tools being discussed here to figure out if they are that bad? Or do they actually address those issues well? By reading this thread I can only conclude that no one here has a backlog of apps that they can't deliver to the business because there is just not enough time and people to get them done. Then you're right, there is no need to look for more productive ways to create apps.

rob
rob

We just finished a new app using Outsystems where we connect up to the server side of the existing app and data via web services. Reason was that we couldn't generate the client side with the available system. SOA/Webservices is the way to de-couple technologies. It proved to work fine!

Justin James
Justin James

And if you choose to take them up on the offer and try it out, and would be interested in having your experiences featured in an upcoming review of Alpha Five, please let me know! J.Ja

skykeys
skykeys

AlphaFive V11 will expose the .NET framework. It's definitely coming, and it will definitely be exciting. As it is, AlphaFive V10.5 is a very good IDE. V11 should be even more powerful. We need to get back to the higher productivity of 4GLs and 4GL IDEs. Programming languages have taken an evolutionary step backward under the guise of "free", open-source standards. But that is a red-herring. I believe a good part of that movement really has been related to an anti Microsoft backlash dating back to the 90's. It focuses on the wrong thing. I'm tired of fighting the technology religious wars. It's time to get back to the higher productivity of 4GLs. If they are proprietary, so what? The "free", open-source standard languages have not saved any time or money, and have only stifled innovation.

apotheon
apotheon

Starcraft II finally hit the market. There's even hope for Duke Nukem Forever in 2011, I hear. edit: Oh, yeah, and the Arc programming language is actually usable now. Perl 6 appears to be getting noticeably close to final. Ruby 2.0 is positively verging on release-level completeness. Pigs have been seen at airports.

Tony Hopkinson
Tony Hopkinson

erm.. .... Bollocks Every one here has a massive investment in the last tool some twit in managemnet bought after a free lunch from a vendor, and no one has the resource to run 3 to several environments or ship the existing code base to yet another language/environemnt/platform. VS2010 is what I'm using. along with Delphi 2005 which we are working on getting rid of. Choose your audience better.

Stan.Williams
Stan.Williams

I inherited an Alpha 5 application a few years back. I believe it was v 4.5. The environment was clean and provided a standard drag and drop design for forms. The ?code behind?, if you can call it that was some form of basic (gw?). Wasn?t overly impressed. It attempted to break the single user problems MS Access suffered from by keeping a parent/mirror copy of the db on a server. Each individual had a copy as well and a transparent process to try and keep them all in sync. There were problems there from time to time. Blame it on what you want, I felt it was a poor approach. After the application was complete each user was required to have a license of Alpha 5 to use the app. Don?t like any scenario that ends that way. The reason I?m not likely to select a new programming environment? If you work for a real business that expects to make real money you have to be realistic. My opinion matters here as a lead developer and I have selected three major moves in IDEs in the last ten plus years. Our developers and support people are expected to perform as business analysts while they remain technically fit. You better be able to show me value added benefit or it?s a simple decision. I?m not going to suggest a change in direction and ask for a transition from a large group unless I can prove it with dollars and sense (intentional). Good subject matter Justin. Nice to see a discussion topic with some substance.

whoiskevin
whoiskevin

In the real world the majority of development is not some new system programmed from scratch. Most of these new or alternative platforms/languages simply don't help with all the modifications and other work that makes up the majority of a "billable" day. Will they gain momentum and one day be valuable? Maybe but most don't actually revolutionize anything enough to gain that kind of traction.

Tony Hopkinson
Tony Hopkinson

Have you heard of mono perchance, IronPython, IronRuby, F#? You either go to native code, or to byte code when compiling or you do interpreted, there are no open source standards for IDEs. They have to take a defined language as input and produce a defined output. An IDEs power comes from how, not what.

apotheon
apotheon

How do you figure? The reason 4GLs have not seen nearly as much uptake as its early proponents envisioned is simple: they do not provide the kind of flexibility and control actually needed for software development in the majority of cases. The basic design concepts of 4GLs have been subsumed within the design of domain-specific macro capabilities and similarly limited uses, including HTML 5 and CSS, VBA, and elisp. The closest things we have to general-purpose 4GLs today are things like Google's App Inventor and Microsoft's SmallBasic, neither of which provides the kind of power necessary to actually get any serious work done -- and both of which are finding their niche only as educational tools rather than practical, "real world" development languages. In fact, given the limitations of the App Inventor, the Android Market can't even reasonably accept App Inventor based software. There are cases where 4GLs are suitable choices, but they are few, far between, and extremely limited. SQL, for instance, is basically a 4GL, and it is in fact an open standard and more widely accepted in open source communities in its proper place as a language for managing data relations than in closed source circles. Attempting to use a language that conforms to the design philosophy of a 4GL to develop a Web browser would result in a browser nobody would use, however. Meanwhile, I wrote a simple content management system basically from scratch last night (I used a couple of helper libraries, but they weren't strictly necessary), in about half an hour. A nontrivial chunk of that time was spent deciding how I wanted it to work. Did I use a 4GL? Hell no. I used Ruby, an open source standards-based language that, rather than relying on some crystal-worshipping new-agey scam artist's concept of how programming should all be done with drag-and-drop interfaces or some other cockamamie nonsense, has been consciously designed to facilitate improved productivity for people who know what they're doing. It would have taken me many times as long to do something equivalent with a proper "general purpose" 4GL, or even with a proper Web application framework for that matter, and I would have had far less fun doing it and ended up with something that disappointed me thanks to the limitations of the language rather than making me surprisingly pleased with what was possible in so short a time. Even more interesting is the fact that languages developed by and for the open source development community, and according to open standards, are far more supportive of 4GL creation and use than closed source proprietary tools in general. For instance, Ruby (which I already mentioned) has excellent built-in facilities for defining 4GLs -- which are, for the most part, a subset of DSLs. DSLs as a whole (encompassing more than 4GLs) are well-supported not only in Ruby, but also in Scheme and Common Lisp, Dylan, Perl, and scads of other languages that are explicitly open standards, available primarily in open implementations, and designed and built by the open source development community. Basically any language with a proper eval is suitable for defining useful 4GLs (as opposed to crap like MS SmallBasic) and other DSLs as needed -- and good friggin' luck trying to convince anyone that a proper eval is more easily found and used in closed source proprietary languages than in their open source counterparts. Open source development models and open standards not only do not hinder development of productivity-enhancing programming tools, but actually encourage that development in ways that closed source models never have. If you have some kind of specific examples of how open source languages have "stifled innovation", please share, because I think you're talking out of the wrong orifice at this point. Even 4GLs are, these days, more likely to arise in open source development than in the closed source development you seem to think is the Great White Hope of 4GL development in the future.

Tony Hopkinson
Tony Hopkinson

I mean you'd have to be dumber than the hole in cow's arse to solve access' shortcomings wth a 'solution' like that. "There were problems there from time to time." Got to be a candidate for understatement of the decade that.

Justin James
Justin James

My experiences with the Agile Platform lately have shown me that Web services are a huge help for those kinds of scenarios. They are also a big help for scalability, too. Also a few of these systems do allow you to extend their functionality with a more mainstream language (Agile Platform, for example, lets you write .NET or Java code to add functionality). That makes a world of difference to keep you from becoming limited. J.Ja

Editor's Picks