About site: Programming/Languages/Comparison and Review - Eiffel and Delphi Compared
Return to Computers also Computers
  About site: http://www.berenddeboer.net/eiffel/eiffel_and_delphi.html

Title: Programming/Languages/Comparison and Review - Eiffel and Delphi Compared Text compares differences of several main aspects.
Slashdot_-_Apple Select news related to Apple from Slashdot.

Arxan_Technologies_Inc_ Anti-tamper software protection tools.

Giff_Graphical_Programming User site. games and screenshots.

Mp3Starfish Directory of mp3 related software with hundreds of titles available for download, accepts PAD submissions.

Stackless_Python An experimental implementation that supports continuations, generators, microthreads, and coroutines.

Chikahan A Filipino community that serves to bring people together across the world.


  Alexa statistic for http://www.berenddeboer.net/eiffel/eiffel_and_delphi.html





Get your Google PageRank






Please visit: http://www.berenddeboer.net/eiffel/eiffel_and_delphi.html


  Related sites for http://www.berenddeboer.net/eiffel/eiffel_and_delphi.html
    I_Witness_Online Virtual online thriller in episodic format. Includes story line, floor plans, and past episodes [Requires Flash and QuickTime].
    Rexx/SQL Interfaces to many SQL Databases.
    iLinkPod MacOS X application that exposes hidden music folders on iPod.
    Chip_Directory SCSI-1 Connector pin assignments.
    Conformiq_Test_Generator A model-based software test automation tool for Windows platforms and Linux allowing users to define software tests using UML. It supports C, C++, C# and Java. [Commercial, trial]
    WebFilter Extension to Cern's httpd web server to filter out annoying parts of web pages.
    Kartoo Displays results in chart or classic list form. Options include different language interfaces and basic or expert version.
    International_Systems_Consultancy Creator of Iranian and Urdu language/character set software.
    Rinn CORBA for Ruby. Goal: a pure Ruby version based on CORBA-Ruby Mapping Specification.
    House_on_the_Hill_Software Help desk software for call logging, auditing, knowledge base, internet call tracking.
    Yorick_Maintenon_Branch Package that provides additional features to Yorick.
    File_Monster Completely erases and deletes files from your system by overwriting all the data in the file to ensure that a file recovery utility will not be able to recover the file. [Shareware]
    Inventio_Software Specialist instrumentation design, programming in Forth, C, C++.
    jContractor Supports Design By Contract in Java. Discovers "contracts" during class loading and instruments the class bytecodes on-the-fly to check run-time contract violations. [Apache Open Source Licence]
    Pool_com Monitors expiring and deleted domains and notifies when available.
    C++_Memory_Management__From_Fear_to_Triumph,_Part_3 Presents a list of simple, powerful techniques that can be used to deal with memory in C++ programs. (August 7, 2003)
    Becky_Internet_Mail A multi-featured E-mail client for Windows 95/98/NT4.0. Features Explorer-like interface, multiple accounts, offline operation, and a powerful text editor.
    Big_Medium Full-featured content manager with browser interface to allow even the most non-technical staff to publish webpages without knowing HTML. Custom templates give full control over site designs. [Commerc
    Network_Cybernetics_Corporation Design, graphics, search engine optimization, Linux-based hosting, and custom application development using non-Microsoft solutions. Located in Dallas, Texas, United States.
    Contrib_Index Index of software packages part of the 'Contrib' directory in the Bell Labs Sources repository.
This is websites2007.org cache of m/ as retrieved on 2008.10.08 websites2007.org's cache is the snapshot that we took of the page as we crawled the web. The page may have changed since that time.
Eiffel and Delphi compared

Eiffel and Delphi compared

Delphi has become complexOpen/closed principleMemory managementLanguage differencesWhy is Delphi the way it is?The following rant has been brought to you after I, again, was notable to adapt an existing component, but had to resort to copy/pastereuse.THIS IS A WORK IN PROGRESS...

Delphi has become complex

Delphi is a very complex language. What started in Turbo Pascal 1.0as a relatively simple language, has become an hideous Swiss armyknife of ill-considered extensions and obsolete constructs.Eiffel is a very simple, very clean language. It is easy to read,even for novices, and easy to learn.

Open/closed principle

Eiffel is built upon the open/closed principle. This principle states that:Modules should be both open and closed:A module is said to be open if it is still available forextension. For example, it should be possible to expand its set ofoperations or add fields to its data structures.A module is said to be closed if it is available for use by othermodules. This assumes that the module has been given a well-defined,stable description (its interface in the sense of informationhiding). At the implementation level, closure for a module alsoimplies that you may compile it, perhaps store it in a library, andmake it available for others (its clients) to use. In the case of adesign or specification module, closing a module simply means havingit approved by management, adding it to the project's officialrepository of accepted software items (often called the projectbaseline), and publishing its interface for the benefit of othermodule authors.Delphi only knows the closed principle. Anyone who ever tried tochange an existing component knows the frustration when he detectsthat most of the stuff he needs to access is in a private section orcannot be overriden.There are many, many ways to hide things in Delphi. To bury them,so noone can ever touch them. You can mark a routine or a property asprivate of course. But you can also define types and routinesin the body of a unit so they're not accessible either.In Delphi, realistically speaking, there is only one way of reuse,and that is the Copy/Paste principle. Except if the class you want tochange is written by the all-knowing all-foreseeing designer. He willhave made all the routines you ever want to access either accessibleor virtual. The same for properties. Give him a thumb-ups from me whenyou meet him. If he exists, because I never had the privilege to meethim, nor see any of his code.Here's the list of how you can cast your Delphi code into concrete:Put your attributes and functions in the private section of yourclass. Your solution is a quick hack anyway, so it's better to hideit.Don't declare a procedure of function virtual. Really, no onewants to override what you did anyway.Use enumerated types. No one ever will have a need to extend thistype.Write procedures and functions in the implementation of your unit,and don't export them. They're not good enough to be reusedanyway.On the importance of resuse, see also DanielMoissett's comments.

Memory management

Eiffel has garbage collection. No more memory leaks. In Eiffel youtypically do not concern yourself with memory management. You might beconcerned by releasing resources as soon as possible such as closing afile instead of postponing the close until the object becomes garbagecollected, but that's all. There are some settings of the garbagecollector you sometimes want to set, but these occassions are rare.In Delphi you're in control. And don't make a mistake, else yourapplication will leak memory. So your typical code is sprinkled withtry...finally handlers.And sometimes you don't have to release the memory, but it alldepends. Take for example strings. Strings are garbage collected inDelphi. Except if they are PChars.And you don't have to free an object if it inherits fromIUknown. But woe, if it inherits from IUnknown and you still freeit.

Language differences

Perhaps some of this needs to be moved to a different page likeEiffel for Delphi programmers?In Eiffel there are only classes and objects.Where to place your class? In Delphi your class can go in a unit orin the program file. And a unit may (sometimes must) contain more thanone class. In Eiffel this is simple: a single class is placed in asingle file. Every file contains just one class. Eiffel doesn't havethe concept of a unit. It has the concept of a cluster, but a clusteris simply all the classes in a directory. A cluster can be compared toan entry in Delphi's search path.No .dpr or main program file.Do you have to initialize a variable? It depends: Global variables have a default value, except when your application is DLL or BPL it seems... Member variables (attributes) have a default value. Variables declared on the stack have no default value. Do you have to free/dispose a variable? It depends: Strings are reference counted, and don't have to be freed. Non objects structures allocated with GetMem have to be freed with FreeMem. COM objects (inheriting from IUnknown) are reference counted, and don't have to be freed. Delphi classes have to be freed. Typecasts and function calls look the same in Delphi.It matters if you have a function or a variable in a class. TheAssigned function only works if you give it a variable, not if yougive it a function. This breaks abstraction. This is due to the var keyword.You can ignore the result, can have disastrous results, and you'renot warned.Even if a class member is protected, you can still read (andchange it I suppose) if the classes are defined in the same unit.Delphi supports overloading. So what a routine does, cannot beunderstood from its name, but you have to look at its parameters aswell.

Why is Delphi the way it is?

The simple answer is: because it is missingDesign-by-Contract. Many programming languages share many of Delphi'sshortcomings because of this. In order to control what a client may dowith an object, programmers feel they have no other option than tohide their code.The other reason is that the compiler writers felt they had toleave the hard stuff to programmers. Whole system analysis isextremely beneficial, but hard on the compiler writer. Macromedia Flash presentation “Delphi and the Eiffel Language” My Eiffel page   My Homepage Mail BerendNOTE: This HTML page requires a browser that supports XHMTL and Cascading Style Sheets 2.
 

Text

compares

differences

of

several

main

aspects.

http://www.berenddeboer.net/eiffel/eiffel_and_delphi.html

Eiffel and Delphi Compared 2008 October

dvd rental

dvd


Text compares differences of several main aspects.

Rules




© 2008 Internet Explorer 5+ or Netscape 6+

Recommended Sites: 1. Arts - Business - Computers - Games - Health - Home - Kids and Teens - News - Recreation - Reference - Regional - Science - Shopping - Society - Sports - World Miss Gallery - Top Anime Hentai - DVD rental by mail - Car Loan - Software Shop - Mortgage Calculator - The eBay Song - Secured Loans
2008-10-08 07:10:47

Copyright 2005, 2006 by Webmaster
Websites is cool :) 39Hotel Hamburg - Katalog Firm - Website Design - Albergo Firenze - Compensation