Tuesday, August 13, 2013

Thoughts about "The future of programming"





Bret Victor, in this excellent video, told us to think about the way we are programming today.

I'm really glad to have this chance to muse about this because in the ongoing “mobile revolution” a lot of new tools have appeared, all of them following the same programming paradigm: basically procedural, focusing on HOW we do things instead of on WHAT we want to achieve.

Since the beginning GeneXus (a programming language created by Nicolás Jodal and Breogán Gonda) has had a different paradigm. Breogán and Nicolas were probably influenced by different languages that appeared at the time. As Bret said, there was more variety because the “correct way to do things” was not yet established.

The influence of “goal-oriented” languages ​​is evident in GeneXus. It was always clear that WHAT is quite more important, in the long term, that HOW. The GeneXus model focuses on WHAT from the beginning, and always emphasized “declaring” over “programming”.

Breogan always say that GeneXus is a Knowledge-based development platform.

Knowledge-based development has two premises that other languages don’t have:
  • Capture WHAT information the user wants (user views)
  • Infer information based on these user views.

In GeneXus we have remained steadfast on not incorporating programming practices “oriented on HOW”, and evolving on a different path instead. From its point of view, the 3rd generation languages of today (with their relatively low level of abstraction) are not very different from the binary code of yesteryear.

Some very specific things you can do in those languages may not be achievable with GeneXus; however the things you do in GeneXus will be useful over time... generating COBOL code one day, and Objective-C code decades later.

GeneXus has long resisted object-oriented trends, prioritizing declarative techniques based on data and rules instead. Things like threading, exceptions, locks, &c do not belong in GeneXus, because we believe those are part of “HOW-space”.

I’m a GeneXus development team member and I don’t think GeneXus is a perfect language. However, I do believe that most of its principles are sound, and lead to a different programming paradigm. In fact, I’m expecting (and hoping) GeneXus will be an inspiration to create software in a different way in the future.

Again, I loved this call to think about the world of programming. I did it ;)

38 comments:

  1. I would like to see a fusion between the GeneXus language and some features that functional languages have, like Lambda Expressions. Java8 and Scala implements it at bytecode-level in a very object-oriented way that wouldn't be so hard to implement in GeneXus.

    Actually me and my colleagues do a lot of HOW in GeneXus, like dynamic XML generation and webservice communication, and also we have an in-memory database, that works nice with GeneXus and a little bit of C#.

    I agree with you about languages should focus on WHAT, but sometimes we need multithread, exception handling and so on. Complex applications need that.

    ReplyDelete
  2. Thanks for sharing this valuable information to our vision. You have posted a trust worthy blog keep sharing. Android training in chennai | Android training chennai |Android course in chennai

    ReplyDelete
  3. Excellent information. HTML5 is a markup language used for designing responsive website and it is also used for structuring and presenting the website content.

    Regards.
    HTML5 Courses in Chennai | Best PHP Training in Chennai

    ReplyDelete
  4. Thanks for sharing this information. Salesforce is a cloud based CRM. Nowadays most of the multinational companies used this CRM for managing their customers. To know more details call 9841746595.

    Regards..
    Salesforce Training in Chennai

    ReplyDelete
  5. Nice Post. Testing is a process of executing a program in order to find any errors, missing requirement or gaps to the original requirements.
    Regards...
    Software Testing Course in Chennai

    ReplyDelete

  6. I have read your blog, it was good to read & I am getting some useful info's through your blog keep sharing... Informatica is an ETL tools helps to transform your old business leads into new vision. Learn Informatica course in Chennai from corporate professionals with very good experience in informatica tool.
    Regards,
    Informatica training in chennai|Informatica courses in Chennai|Informatica institutes in Chennai|SAP training in chennai

    ReplyDelete
  7. Nice Article! Mostly I have gathered knowledge from the blogger, because its provides more information over the books & here I can get more experienced skills from the professional, thanks for taking your to discussing this topic.
    Regards,
    sas training in Chennai|sas course in Chennai|sas training institute in Chennai

    ReplyDelete
  8. I have finally found a Worth able content to read. The way you have presented information here is quite impressive. I have bookmarked this page for future use. Thanks for sharing content like this once again. Keep sharing content like this.

    Software testing training in chennai | Software testing training institutes in chennai | Software testing training

    ReplyDelete
  9. Thanks for sharing this informative blog. Keep update your blog.

    dot net training in chennai

    ReplyDelete
  10. Thanks for sharing this informative blog. I did Oracle DBA Certification in Greens Technology at Adyar. This is really useful for me to make a bright career..
    oracle training in chennai


    ReplyDelete
  11. This is an awesome post.Really very informative and creative contents. These concept is a good way to enhance the knowledge.I like it and help me to development very well.Thank you for this brief explanation and very nice information.Well, got a good knowledge.
    Hadoop Training in Chennai
    Cloud computing Training
    Cloud computing courses in Chennai
    Cloud Training in Chennai
    Big Data Hadoop Training
    Hadoop training institutes in chennai

    ReplyDelete
  12. Thanks for sharing this valuable information to our vision. You have posted a worthy blog keep sharing.

    Guest posting sites

    Technology

    ReplyDelete
  13. Nice article i have ever read information's like this.it's really awesome the way you have delivered your ideas.i hope you will add more content in your blog.
    vmware training institutes in bangalore
    best vmware training in bangalore
    vmware Training in Nolambur
    vmware Training in Saidapet

    ReplyDelete
  14. This is most informative and interesting post, Thank you so much for giving this information to me..
    Regards,
    Tableau training in Chennai | Tableau Courses Training in Chennai | Tableau training Institute in Chennai

    ReplyDelete
  15. I believe there are many more pleasurable opportunities ahead for individuals that looked at your site.
    Azure Training in Chennai

    ReplyDelete
  16. This is the exact information I am been searching for, Thanks for sharing the required infos with the clear update and required points. To appreciate this I like to share some useful information.vmware training in bangalore

    ReplyDelete
  17. Anyway the articles can be successfully dealt with adaptable arrangements on offer from Salesforce Knowledge. Organizations can choose article administrators according to their prerequisites and a legitimate endorsement cycle can be kept set up for explicit article types that requests lawful or the executives survey before distribution. What is the best Salesforce training institute in Noida

    ReplyDelete
  18. It has been simply incredibly generous with you to provide openly
    what exactly many individuals would’ve marketed for an eBook to end
    up making some cash for their end, primarily given that you could
    have tried it in the event you wanted.
    oracle training in chennai
    ASP.NET Training in Chennai
    C#.NET Training In Chennai

    ReplyDelete