SitePoint Sponsor

User Tag List

Page 1 of 3 123 LastLast
Results 1 to 25 of 54
  1. #1
    Resident OCD goofball! bronze trophy Serenarules's Avatar
    Join Date
    Dec 2002
    Posts
    1,911
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)

    Question TypeSafe PHP Inquiry

    How helpful would it be to you, as a PHP developer, to have a typesafe library to use such that your functions can specify type hints for strings, ints and other scalar data types as classes, or perform automatic input validation?

    The reason I ask is because I am writing one that mimics the .NET idioms regarding objects. The String class for example will have all the stock PHP functions that act on strings built ing, minus the target string. All object constructors, properties, and methods input values will be auto-validated using the libraries own classes. Some examples of usage are as follows:

    Code:
    // construction
    $str = new CTypeSafeString();
    $str = new CTypeSafeString($scalarString);
    $str = new CTypeSafeString($instanceOfTypeSafeString);
     
    // properties
    $str->value = "hello";
    echo $str;
    function ($str->value);
     
    // methods
    if ($str->crypt($hash)->value == $hash->value) { ... }
    Currently all classes have been defined and I am working on getting all the stock PHP functions added to right classes, with additional functions for other operators, such as math, bitwise and so forth. This will be the most complete typesafe collection that I am aware of. One could use these classes as type hints like this...

    Code:
    function Example(CTypeSafeString $str, CTypeSafeInt $int);
    ... or auto-validate your own function input like this ...

    Code:
    function Example($str, $int){
    $str = new CTypeSafeString($str);
    $int = new CTypeSafeInt($int);
    }
    In the second example, you could pass in any value that the CTypeSafeString and CTypeSafeInt constructors take as the all take a null values, a scalar of expected type, or an instance of the class at hand. All validation and casting errors throw appropriate exception from within the class code.

    So, would you find this usefull in your own applications or not? If so, I will put up a distribution site for it, if not, I'll keep it to myself.

  2. #2
    SitePoint Zealot
    Join Date
    Oct 2004
    Location
    naperville
    Posts
    189
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    While I'm not the most advanced person here, I honestly wouldnt use it. It seems like overhead for something thats not really an issue given you do proper data checks upon creation / taking from users.

  3. #3
    Resident OCD goofball! bronze trophy Serenarules's Avatar
    Join Date
    Dec 2002
    Posts
    1,911
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)
    Yes, there is a slight overhead, however, it's the true OO way to do things. It also simplifies input validation for things such as webservices, which are called from somebody who may be submitting data from a script you did not write.

  4. #4
    Resident Java Hater
    Join Date
    Jul 2004
    Location
    Gerodieville Central, UK
    Posts
    446
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Although this might be the true OO way, it's not the PHP way imho.

    .NET has this stuff built in and therefore it runs reasonably quickly as this is built into the runtime libraries which are probably optimised at machine level for this sort of thing.

    This is quite an overhead as there are few places when this is needed. Provided you validate POST/GET data you shouldn't have problems. If you need to explictly recast, you can use the C style cast operator to cast non object types such as

    (float)
    (int)
    (array)
    (bool)

    I tend to use (int) when building SQL strings where I am using PK or FK's just to avoid injection without calling SQL string encoding methods to escape data.

    Likewise I use validators for my forms. When dealing with forms you will need more complex validation rules, and therefore I have a totally separate/different way to dealling with form validation.

    What's more, is PHP is simply not designed to do this. Remember that optimising your code is about knowing about the unlying machine archtecture. In this case our machine is not a real CPU but the Zend Virtual Machine. This produces way too much run time overhead and to me makes messy code. This is different in C/C++ as these are compile time languages, and therefore it is important for the CPU to know what data type it deals with in advance, because different machine OP codes are used to work on floating point number from normal ints or fixed point numbers. This is all due to the encoding used. Type safety is a must in any true compiled language that doesn't relie on a runtime to hold the varaible in an "intermediate state" which gets translated on the fly through things like reflection.

    PHP is designed for ease of use (hence loose typing, garbage collection). C++ is designed for speed (static typing, manual heap resource management).

  5. #5
    Resident OCD goofball! bronze trophy Serenarules's Avatar
    Join Date
    Dec 2002
    Posts
    1,911
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)
    Respectfully, I disagree with your assertions, with the exception of the technical issues.

    I feel it is extremely important to know what your getting in function arguments. This is just another way of doing your POST/GET checking in a manner which is more efficient as these objects are typically short lived. Instead of testing the type yourself and conditionally raising an exception, these objects consutructors will do that automatically. These objects do not cast anything using "(type) variable", if it is not null, already a scalar variable of appropriate type , or an already created instance of said class, an exception is raised immediately. It forces programmers to break thier code up more and allows for better error handling. I've tested these classes myself and so far have seen no appreciable effect on speed or efficiency of any application.

    While your assertions may be "technically" correct, they hold no value in the OO purists POV. These are the people I am querying. I do appreciate your comments however.

  6. #6
    SitePoint Zealot
    Join Date
    Oct 2004
    Location
    naperville
    Posts
    189
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    While your assertions may be "technically" correct, they hold no value in the OO purists POV. These are the people I am querying. I do appreciate your comments however.
    But PHP isn't a pure OOP language. Don't get me wrong, I use OOP all the time, but to me this is "oop for the sake of being oop". While I can see these being useful for form data processing and the like, for general variables I just feel it's a bit messier for something thats not needed in a loosely typed language. Thats just my opinion, however.

  7. #7
    Resident OCD goofball! bronze trophy Serenarules's Avatar
    Join Date
    Dec 2002
    Posts
    1,911
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)
    On the other hand, a great many PHP developers are former .NET developers, myself included. This loose typing irks most of us to no end. As a matter fact, I loath the ability to change type on the fly...

    $var = "string";
    $var = 421;

    ...this is just wrong. Of course, we've both done nothing but express opinion. I'd really like to hear commentary from those in my own situation. As for why I no longer use .NET, I can't afford to keep upgrading. I have a hunch that others like me still want this level of ability.

  8. #8
    Resident Java Hater
    Join Date
    Jul 2004
    Location
    Gerodieville Central, UK
    Posts
    446
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Super Phil
    But PHP isn't a pure OOP language. Don't get me wrong, I use OOP all the time, but to me this is "oop for the sake of being oop". While I can see these being useful for form data processing and the like, for general variables I just feel it's a bit messier for something thats not needed in a loosely typed language. Thats just my opinion, however.
    I totally agree. The syntax looks so bloody messy to me as PHP doesn't have operator overloading support like C++ and this alone makes it obvious that strict typing is not something designed for PHP.

    Much as I think ASP.NET is good in places, it doesn't mean that PHP should have direct ports of all the good ASP.NET stuff, or vicea versa. Underneath these platforms work very differently and therefore porting features directly from one platform to another is generally a bad thing.

    Look at Hibernate for example. It's a bloody good Java ORM tool. However I doubt you'll get a "direct" PHP port and it would be silly to do this as PHP works differently from Java and therefore a direct port would not be very fast.

    Look at this ...

    // construction
    $str = new CTypeSafeString();
    $str = new CTypeSafeString($scalarString);
    $str = new CTypeSafeString($instanceOfTypeSafeString);

    // properties
    $str->value = "hello";
    echo $str;
    function ($str->value);

    // methods
    if ($str->crypt($hash)->value == $hash->value) { ... }

    What a waste of time....

    if ($str->crypt($hash)->value == $hash->value) { ... }

    Why not ...

    if (crypt($some_string) === $hash) { ...}

    or at the worst ...

    if (crypt((string)$some_string) === $hash) { ...}

    it's so much more easier and logical. There is no need to do strict typing at the expensise of over engineered type classes and a load of messy dereferencing operators. Also, your string class is just going to be very messy and bloated with silly wrapper methods.

    Because you work in .NET and want to use PHP doesn't mean you should take the same approach to programming in both. Different languages have different purposes and therefore how you approach a problem will vary. .NET is designed to work with more that Web stuff as you can do Direct X stuff in C# using it. Something like Direct X simply can not rely on generic variant / dynamic casting data types where you need speed.

    Why enforece strict typing when PHP has a load of code to enable loose typing so you don't have to constantly think in terms the technical side of implementating a solution. PHP is designed for code that rapidly evolves with business and therefore needs to be maintainable. The only time you need strict data typing is when you need speed. When you use this, you have to think more about things that you shouldn't need to worry about unless you are writing a computer game or some 3D rendering engine or something.

    Exactly where is there the need to go overboard and use "pure OO"? OO is meant to be a design tool, not a enforced rule. This is almost like design patterns. Design Patterns are good to follow, and generally a well written application will have classes that are small and their roles will often clearly follow a couple of patterns per a class. However, it doesn't mean that you should force use a design pattern for the sake of it. Design patterns are tools and much like Marcus said, you should know about these tools if you are a skilled programmer. However you can't force a design to use certain design patterns. I mean going back to tools, you wouldn't use a sander to put a nail in the wall, you use a hammer. You can't use a tool for the sake of using it. Like Phil said you are doing something for "the sake of it".

    Just because someone programs assembly language and PHP doesn't mean they take the same approach to programming.

  9. #9
    Resident OCD goofball! bronze trophy Serenarules's Avatar
    Join Date
    Dec 2002
    Posts
    1,911
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)
    You've given me something to think about then because quite frankly I'd never heard of a "design pattern" until two weeks ago when I looked at the observable class and I've been developing for over 12 years. Mostly in C++, VB and VB.NET/ASP.NET. I have come to expect typing. I am not sure I can set it aside, and yet, I cannot afford the upgrades to my MS software.

  10. #10
    SitePoint Wizard DougBTX's Avatar
    Join Date
    Nov 2001
    Location
    Bath, UK
    Posts
    2,498
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Serenarules
    This loose typing irks most of us to no end. As a matter fact, I loath the ability to change type on the fly...
    I don't think that PHP is the language for you.

    Seriously, if you want the OO features you are talking about, strong typing, well: there are other languages out there. Go use them, you'll probably fine life much easier if you are not fighting against the language you are coding in.

    For me, I'm heading in the other direction. Operator overloading, mixins, procs, proper to_string (=to_s) support in all objects, a fully OO language ("text".capitalize), parallel assignment, multiple return values from a function, array assignment (g = [0, 1, 2, 3], g[1, 2] = [55, 27], g == [0, 55, 27, 3]), attribute setter generation (no more __set and __get, just a simple attr_writer :key line)... PHP just starts to feel inflexible. Come on Ruby

    (Though I had to do some Delphi probramming a couple of days ago, and that made PHP look slick!)

    Douglas
    Hello World

  11. #11
    Non-Member
    Join Date
    Jan 2003
    Posts
    5,748
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I'm in total agreement with you MiiJay Sung

    PHP is not DotNet and you know what? Thank God it isn't, but I can understand where the need of this class(es) come from, moving from the DotNet environment to a PHP environment.

    But PHP has no use for this sort of thing in my view - just enjoy PHP as it is

  12. #12
    Resident OCD goofball! bronze trophy Serenarules's Avatar
    Join Date
    Dec 2002
    Posts
    1,911
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)
    Tell me then, being a sheltered MS developer, other than PERL and PHP, what else is there? Don't say Java, because I actually got the Borland J++ suite and do NOT understand it.

  13. #13
    SitePoint Wizard DougBTX's Avatar
    Join Date
    Nov 2001
    Location
    Bath, UK
    Posts
    2,498
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Serenarules
    quite frankly I'd never heard of a "design pattern" until two weeks ago when I looked at the observable class and I've been developing for over 12 years.
    In that case, it is proof that years programming != years of experience!

    You might like agile tools the more you use them

    Douglas
    Hello World

  14. #14
    Resident OCD goofball! bronze trophy Serenarules's Avatar
    Join Date
    Dec 2002
    Posts
    1,911
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)
    I wonder if that is true. While I was employed from 1993 up until 2000 by various companies, I find myself extremely lacking in design principles that so many of you here seem to know by heart. Is that good or bad? To be truthful, I'm not that impressed with most software released in the past 5-10 years compared to that from before. I can't put my finger on why either. Could it simply be that I have become out-of-sync with who I used to be?

  15. #15
    SitePoint Wizard DougBTX's Avatar
    Join Date
    Nov 2001
    Location
    Bath, UK
    Posts
    2,498
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Serenarules
    Tell me then, being a sheltered MS developer, other than PERL and PHP, what else is there? Don't say Java, because I actually got the Borland J++ suite and do NOT understand it.
    I should have made Ruby a hyperlink Also take a look at Rails for a Ruby web framework.

    I've only written small "see how the language works" applications so far, but what I've seen is very nice.

    I find myself extremely lacking in design principles that so many of you here seem to know by heart.
    I wouldn't call my self an expert by a long shot - I spent a while doing Delphi programming, but as I came more into contact with patterns and things like that, it was quite a big shift. I've gone from code like this:

    Code:
    interface
    
    type
      TForm1 = class(TForm)
        procedure FormCreate(Sender: TObject);
      private
        { Private declarations }
        a_private_variable: string;
      public
        { Public declarations }
      end;
    
    var
      Form1: TForm1;
    
    implementation
    
    {$R *.dfm}
    
    procedure TForm1.FormCreate(Sender: TObject);
    var
        s: string;
    begin
        s := 'text';
        a_private_variable := s;
    end;
    to code like this:

    Code:
    class MyClass
      def SomeFunction
        s = 'text'
        @a_private_variable = s
      end
    end


    That's not really a patterns example... though now it is:

    Code:
    require 'singleton'
    class MyClass
      include Singleton
      def SomeFunction
        s = 'text'
        @a_private_variable = s
      end
    end
    Douglas
    Hello World

  16. #16
    Non-Member
    Join Date
    Jan 2003
    Posts
    5,748
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Borland is an entirely waste of time and money in my view, I had a look at it about 2 years ago and couldn't get into it either, so your not alone - but do not disregard Java simply because of Borland; Java is a beutiful language but it is difficult to develop at a competent level...

    Takes a number of years to really get a feel for it There is Ruby (as suggested) and Python but I've not looked at those so cannot comment.

    But anything bound to beat Microsoft technology, surely?

  17. #17
    Non-Member
    Join Date
    Jan 2003
    Posts
    5,748
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I find myself extremely lacking in design principles that so many of you here seem to know by heart.
    Maybe this is because there is tradional software development, and there is web development, both are entirely different and deserve different perspective views on design and development?

    A lot of folks I suppose are moving from the tradional environment to the web environment but are ignoring the web concepts such as agile development and techniques, maybe...

  18. #18
    SitePoint Zealot
    Join Date
    Oct 2004
    Location
    naperville
    Posts
    189
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Ruby is an option, and perl6 looks nice, but I've always considered if I moved away from PHP it would be towards .NET and not from.

  19. #19
    Resident OCD goofball! bronze trophy Serenarules's Avatar
    Join Date
    Dec 2002
    Posts
    1,911
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)
    Phil, if I had the money, I would've never left .NET. TO the Ruby guys, a few questions...

    1) How easy is it to utilize MySQL (or other dayabases)?
    2) How easy is it to utilize XML/XSLT?

  20. #20
    SitePoint Wizard DougBTX's Avatar
    Join Date
    Nov 2001
    Location
    Bath, UK
    Posts
    2,498
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Quote Originally Posted by Serenarules
    1) How easy is it to utilize MySQL (or other dayabases)?
    2) How easy is it to utilize XML/XSLT?
    1) So far I've only used databases via Rails (I'm in the process ob being seduced by the language at the moment ) where this is all you need for database connection: http://wiki.rubyonrails.com/rails/show/TutorialStepTwo

    Code:
    development:
      adapter: mysql
      database: rails_development
      host: localhost
      username: root
      password:
    There are MySQL modules which appear quite usable and give lower level access. A quick google brings up lots of examples.

    2) I've not used XML with Ruby yet, though here is a tutorial for XML with Ruby so you can get a feel for it: http://www.germane-software.com/soft.../tutorial.html

    Douglas
    Hello World

  21. #21
    Resident OCD goofball! bronze trophy Serenarules's Avatar
    Join Date
    Dec 2002
    Posts
    1,911
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)
    The product I currently have on the books is one I plan to sell for use on hosted environments. How is the support for Ruby on hosting solutions?

  22. #22
    ********* Victim lastcraft's Avatar
    Join Date
    Apr 2003
    Location
    London
    Posts
    2,423
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Hi...

    Quote Originally Posted by Serenarules
    Yes, there is a slight overhead, however, it's the true OO way to do things.
    Er...what? OO has nothing to say about either strong or loose typing. Smalltalk and Ruby are pure OO languages (everything is an object) and both are loosely typed. For example see this discussion...

    http://www.smalltalk.org/articles/ar...050105_a2.html

    I cannot resist a rant at this point. Please ignore...

    Also the C# type system is hardly exemplary. It's a clone of Java's. Java not only borrowed a lot of the C++ typing, but did it within an extremely tight security model, which C# doesn't use. Also Java got it wrong. They threw out templates (the metaprogramming kind) only to have to now reintroduce them in version 1.5 going against one of the very design goals of Java, a simpler C++. C# has it's little delegate hack, but no amount of autoboxing covers up that eventually the types will get in the way of what you really wanted to do.

    I won't even go into the layers of contortions you have to go through with C++. "Mutable" anyone?

    Strong typing does have value in systems that will crash without explanation, such as compiled languages where you have to manage memory, or very long running systems where you cannot test every code path. In fact full on contract tools like Eifel and ContractJ may be needed. I am a big fan of tools that support typing in this environment. I used to code telephony and embedded code in C and used to use a lint tool on top for good measure. I don't now because two things changed. I switched to the web where everything is either a string (or should be) or an object, and I started using fine grained unit testing in my development process.

    How often do you actually write over a variable with the wrong type in a disastrous way? The chances are that if you did it at all it's because the intention actually demanded it. If I am writing out a number and accidently forget to cast it to a string before adding it to the page text, so what? That's actually what I intended and I should get the same result either way. If not your unit tests will find it.

    If the types don't protect you against anything, then they add clutter. Any extra clutter increases the chance of other errors occouring because they help to obscure the code and the longer the code the more errors anyway. These new errors soon start to outweigh anything that the typing is preventing.

    Which brings me on to the (mis)feature that is the PHP type hints...

    The ability to specify a class as a type hint is a really bad idea. Specifying interfaces I have no problem with. I can see why they did it for classes, it was to avoid the IMyThing and CMyThing name duplication madness. Having to create an interface that just shadows the class is plain silly. Had the type hints allowed a class to be used as if it were an interface I would have had no trouble either. But forcing an incoming object to be a subclass mixes up implementation decisions (class structure) with types (interfaces). This gets us into the same mess that C++ got into and is the very reason Java introduced interfaces in the first place. Before long I expect to read someone saying something to the effect that creating shadow interfaces is the "correct" thing to do with type hinting and we will be back to square one .

    Phew, OK I can stop ranting now.

    One thing that does amuse me is that whenever we switch language we always try to recreate our previous language within the old one . For example when moving to C to C++ coders will use the classes as smart data structures at first. I've even seen people implement for/next loops in Prolog . I don't think there is anything wrong with this as part of learning a new way of thinking. We feel a bit all at sea at first and want something familiar to begin with.

    Look forward to shedding your shackles, or at least your hungarian like notation .

    yours, Marcus
    Marcus Baker
    Testing: SimpleTest, Cgreen, Fakemail
    Other: Phemto dependency injector
    Books: PHP in Action, 97 things

  23. #23
    Resident OCD goofball! bronze trophy Serenarules's Avatar
    Join Date
    Dec 2002
    Posts
    1,911
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)
    Marcus, good or bad, you always have such insightful posts. It seems I've missused the term type safe here somewhat. Forgive me for that as I am self taught and have never seen the inside of a class room. I merely picked up things as I went. I barely knew Paradox and Borland Delphi 1.0 when I got my first real gig. What I was going for was more or less an OO approach to variable access ($var->function) so that you actually act upon the variable instance. In retrospect, and I thought about this a great deal tonight, I now fail to see why I started this side-project. It's not like the .NET IDE's with code insight, or auto completion features, or popups listing available functions when you type $obj->. I think you hit the nail on the head in regards to wanting to make a new language work like the old. In addition I've put a lot of consideration into my choice of platforms, which features I liked and disliked about each of them and now feel, like somebody already mentioned, PHP isn't right for my needs. Not that it isn't a great language, it is. I've enjoyed using it, I simply put more emphasis on other things. For example being able to build a common binary that can serve a thin client web app or a desktop app interchangeably. What it comes down to is this: I understand the Microsoft environments better as that's what I've used for so long. Before I go though, I'd like to inquire, what's wrong with Hungarian notation?


  24. #24
    ********* Victim lastcraft's Avatar
    Join Date
    Apr 2003
    Location
    London
    Posts
    2,423
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Hi...

    Quote Originally Posted by Serenarules
    Forgive me for that as I am self taught and have never seen the inside of a class room.
    Me too .

    Quote Originally Posted by Serenarules
    It's not like the .NET IDE's with code insight, or auto completion features, or popups listing available functions when you type $obj->.
    Tools are lacking, but less necessary with a looser language.

    Quote Originally Posted by Serenarules
    I've enjoyed using it, I simply put more emphasis on other things. For example being able to build a common binary that can serve a thin client web app or a desktop app interchangeably. What it comes down to is this: I understand the Microsoft environments better as that's what I've used for so long.
    I think you have hit a very good reason why you should try something different now. You might typecast your brain into one way of thinking. Python has excellent GUI support and also has Zope and the (now neglected) Jython platform as well as it's own web tools. Also Ruby is a real eye opener if you have used another language before. Library support is not so strong in Ruby.

    Quote Originally Posted by Serenarules
    Before I go though, I'd like to inquire, what's wrong with Hungarian notation?
    It has benefit in C because type slip ups are usually fatal. Being able to look at "paiStuff" and know that it was a pointer to an array of integers was a useful if desperate measure. Lint tools do all of that for you, and so I dropped the notation at that point. The code reads better.

    C and C++ is a nightmare to debug because the code just stops without warning. If it's heap curruption the chances are the crash point has nothing to do with the point where the error was created so any message you do get is misleading. You go through every indignity that you must to avoid this crash situation.

    When the worst damage you can inflict on yourself is a stack trace there really doesn't seem to be much value in Hungarian. Clean, clear code is the most powerful error prevention method we have so it gets priority.

    Everyone gathers together a repertoire of development practices that have to work together. For me that used to be UML, specs., Lint/typing, Hungarian, Malloc replacements, comments and debuggers. Nowadays it's refactoring, YAGNI, pair programming, iterations and unit testing. Because they function as an ecosystem it's very difficult to personally drop one because your own coding will then fall apart. You have to replace it tool by tool until a part becomes unnecessary. I think that's why debates over single practices are so heated. For example comments may be a vital part of one person's development practice, but be completely unnecessary to another developer.

    yours, Marcus
    Marcus Baker
    Testing: SimpleTest, Cgreen, Fakemail
    Other: Phemto dependency injector
    Books: PHP in Action, 97 things

  25. #25
    Resident OCD goofball! bronze trophy Serenarules's Avatar
    Join Date
    Dec 2002
    Posts
    1,911
    Mentioned
    26 Post(s)
    Tagged
    0 Thread(s)
    Actually, I think I'll stick with what I know for now. I have a real need to get something out mid next year in order to avoid bankruptcy. I don't have time to learn something new at this point. In addition, it needs to be in a format people can install easily on a hosted web server without the need to install special interpreters. I did take a look at Ruby, and it looked very interesting. Maybe afterward. As far my notation goes, in vb I use a completely different style: single letter for scope (l = loacl | m = module | g = global) three or four letters for type (str = string, int = integer, etc...) then name (g_bln_IsValid = global boolean 'IsValid'). Is that any better?


Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •