ABL - Object-Oriented Programing

DevTeam

Member
Hi everyone,

I am currently working on Progress V10 and more specifically on the ABL component.

I have searched the online documentation, but I cannot find any information about the "static" concept... Any idea about that ?

Thanks in advance.

Julien

---------------------------------

Bonjour à tous,

Je "travaille" (autoformation) actuellement sur la v10 Progress, et plus spécifiquement sur le composant ABL.

Ayant quelques notions objets, je tente de traduire un petit programme de Java en ABL. J'ai retrouvé la majeure partie des concepts (instanciation, portée des objets, etc). Cependant, j'ai beau chercher dans la documentation, je ne trouve rien concernant le "static" sur les méthodes ou les propriétés.

Si jamais quelqu'un a une idée, je suis preneur !

Merci d'avance.

Julien
 
Statics are not currently available in 10.1B, but some form of them are expected for 10.1C.
 
Statics are not currently available in 10.1B, but some form of them are expected for 10.1C.


Hi,

Thanks for your answer.

So I'll just have to wait until the next release... :sleepy:

When you say "some form of them", what do you mean ? Is it gonna be like the "final" instruction only available for classes & methods declaration, and not for properties ???

Have a good day.

Julien
 
I mean that it is one of the things mentioned for 10.1C, but that I don't know exactly what it is that they will implement.
 
I mean that it is one of the things mentioned for 10.1C, but that I don't know exactly what it is that they will implement.

I have been looking for more information on Progress' official website, I haven't been able to find the roadmap about the 10.1C. Do you have any idea about the expected release date ?
 
I have been looking for more information on Progress' official website, I haven't been able to find the roadmap about the 10.1C.

If you have a caring boss, ask him to send you along to the Brussels Progress Exchange.

http://www.progress.com/ptw/2007/emea/sessions/sessions-per-track/index.ssp

OpenEdge Strategy for Upcoming Releases
Speaker: Ken Wilner

Get a an update on the OpenEdge strategy, a look into what to expect in our next few releases and a glimpse of our strategic roadmap. Whether you've already used OpenEdge 10 or not, you'll benefit from knowing where we're going next with OpenEdge 10.1C and OpenEdge 10.2A. We will also cover what our long term strategy and plan is for the various OpenEdge products. Come and see the exciting future of OpenEdge.
 
December is highly unlikely as the beta hasn't even been announced yet. Last year the beta signup started at Exchange and they barely made FCS by the end of the year, so I think you can count on some time Q1 2008.

There won't be a public posting of features until it is released. When the beta is available a list will be available to beta participants, but still not public.
 
December is highly unlikely as the beta hasn't even been announced yet. Last year the beta signup started at Exchange and they barely made FCS by the end of the year, so I think you can count on some time Q1 2008.

There won't be a public posting of features until it is released. When the beta is available a list will be available to beta participants, but still not public.

As I am just studying ABL in order to appreciate the expected charge of translating our 4GL code into ABL code, there's no hurry, so Q1 2008 seems "acceptable". And I'll figure a way of doing some "dirty" static until then !

As soon as "static" and "final" are implemented, ABL will be, according to me, a very good substitute to 4GL...

Thanks again for your patience and, who knows, see you maybe in Brussels ! :)
 
ABL is not different from 4GL. It is only a re-branding. 100% of your existing code will work in current versions, save the usual risk of conflicts with new keywords. You can write in current versions exactly as you have always written or you can start to use the OO constructs. There is plenty there now. No need to wait for 10.1C.
 
No need to wait for 10.1C.
I know, and I won't... My bad, I wrote "4GL into ABL" but I meant "my Java sample code into ABL", as this is what I am currently trying to achieve. And this will be 100% possible only when basic OOP notions are available in ABL. That's why I'm interested in 10.1C
 
Don't forget when interpreting the code into ABL that ABL is a 4GL, so there are some things which you should do differently than you would have done them in Java.
 
What sort of benchmarks?
- My reference is a 4GL program, which takes xxx seconds to do the work.
- Then I run the Java program corresponding to this 4GL program (without being a translation : I did it "from scratch"). It takes yyy seconds
- Finally, I run the ABL translation, and it takes zzz seconds.

The first results give xxx ~ yyy, but zzz = xxx * 10...

But I know I have problems, for the moment, with uninstanciating objects (as there's no garbage collector), which could explain those low performances. And I did try to reproduce the java's database access behaviour in creating a class "Resultset"... And as I am not currently fluent in Progress... :rolleyes:
 
- My reference is a 4GL program, which takes xxx seconds to do the work.
- Then I run the Java program corresponding to this 4GL program (without being a translation : I did it "from scratch"). It takes yyy seconds
- Finally, I run the ABL translation, and it takes zzz seconds.

could you elaborate a bit what're the reference & abl translation?
another question: how could the garbage collector improve the performance of an abl application? it stands to reason its activity might make it worse but definitely not better, might it?!
 
could you elaborate a bit what're the reference & abl translation?
another question: how could the garbage collector improve the performance of an abl application? it stands to reason its activity might make it worse but definitely not better, might it?!
I guess my explainations weren't clear......

Well, the general idea of the existing 4GL program is to manage stocks, by getting information from a "mailbox" table, and processing data in order to update other tables
- in a procedural way in 4GL (existing code)
- in an object way in Java
- in what I expect to be on object way in ABL

The only correspondance between 4GL and Java is the business logic, whereas the ABL code is the (more or less) exact reproduction of the Java code.

Concerning the garbage collector in Java, you do not have to handle the object unreferencing yourself... In ABL, if you do not pay attention, I think your memory can be full quite quickly. In my code, it seems that I had more than 10 000 objects still referenced... Dirty isn't it ? So I'll try to correct it and see if it helps...
 
Yes, no housecleaning could indeed be a problem ... might not be the only one, but it could easily produce the effect you are seeing. It seems likely that we will get some form of garbage collection around the 10.2A timeframe, but even if we do, it is still better practice to clean up after oneself when one can, rendering any automatic garbage collection unnecessary.

I am glad that you are smart enough to recognize that the problem might be your approach and that the results might change with different technique. Some folks would just write off the language.
 
Back
Top