Age, experience
- Posted by "J. Kenneth Riviere" <kriviere at MINDSPRING.COM> Aug 10, 2000
- 419 views
I've been programming professionally for more than 20 years, but only discovered Euphoria in the last couple of months. I've often worked with extensive text data and the atom/sequence paradigm of Euphoria has a lot of appeal to me. I work with perl and while it has some powerful features there are some reasons why I'd rather not use it for my own, private development. First of all, I want to be able to distribute my applications in such a way that someone can use it without having to first install an environment to support my application. Euphoria's bind capability satisfies this. I understand much progress has been made on a perl compiler, so I'll have to check that out one of these days. Another factor is simplicity. I've worked with massive, complex memory structures in perl, and I can understand the complaints I've heard from some quarters that it can be difficult to read and understand. When I'm programming for fun I'd rather not have to deal with those complexities. I recently spent some time looking at Liberty Basic for some home programming. I came across it when my son learned some Basic programming at a summer camp and I wanted to have a Basic programming language that he could use at home. However, after playing with LB for awhile I became fed up with its limitations. LB's creator has said he is deliberately keeping it simple in order to have something that is easy to use. He apparently disdains some requests for features from professional developers as being unnecessary. I'm sure that he has gotten requests which are unnecessary for his purposes, but having subroutines which can have local variables and accept parameters seem to me to be such basic functionality that I don't feel like putting up with a language that doesn't support them. For that reason and others I started looking elsewhere for another Basic option (without spending hundreds of dollars on integrated professional development systems) when I found Euphoria. It took me a little bit to understand the vision of unlimited data structures provided with sequences, but I've started to get excited about how easy it can be to support nesting to virtually any depth without needing to develop new tools for every structure. The elegance (what an apt description) and simplicity of the overall design is quite appealing. I looked at Python very briefly, but I was immediately turned off by its syntax-specified indentation scheme. I have my own ideas about how to layout code so that it is understandable, and I thought programming had moved away from languages with program text layout restrictions since I stopped using assembler, COBOL, and FORTRAN. I read some articles from links found in some Python web sites where various programming languages were compared, and the writers of those articles were quite articulate about what they liked and didn't like. However, I came away with the impression that they wouldn't be happy unless they knew with certainty that they could control the manipulation of every bit (and I mean literally binary bits) of data that they used in their programs. For myself, I don't generally choose to program in assembler or machine language (which I've done, I've even studied micro-coding machine instructions) because I want my programming language of choice to hide the details from me. I don't really care if a sequence is defined as an array of memory addresses and lengths or if some other scheme has been devised. My concern is that when I use the syntax of a language to reference a data structure that I can set and get that data accurately. I'll be even happier when computers can be programmed to do what I want them to do instead of what I tell them to do, but in the meantime, I'll settle for making it easy to tell them (computers) what to do to the best of my ability. Another aspect of Euphoria's appeal is the supportive and friendly user community which I've observed here on the mailing list and to which I hope that I can contribute. I have encountered a few problems which I might ask for help with if I cannot resolve them, and I'm working on some utilities which I'll share once I've done my best to check them out thoroughly (there's no point in spreading bugs around which overshadow whatever limited utility my routines offer). I have already benefitted from the contributed libraries of others (and Win32Lib is invaluable as I am working in a Windows environment) and I hope to be able to contribute in kind. -J. Kenneth Riviere