Developers Newsletter #17 - 13-JUL-2001
INDEX
1. A FEW WORDS FROM THE EDITOR
2. DELPHI VS. VISUAL BASIC (II)
- Extensibility
· ActiveX Objects
· VCL Components
· Availability of third-party libraries, objects, etc.
- Obsolescence
- Programming power and functionality
- Portability
- Comparisons by NTSL
3. SYSTRAN TRANSLATION SOFTWARE
- SYSTRAN PROfessional Standard
· Customization
· How does it work?
· Data sheet
- Other solutions offered by SYSTRAN
· Babelfish
4. SOAP - Simple Object Access Protocol
5. ARTICLES IN THE WEB
########################################################################
1. A FEW WORDS FROM THE EDITOR
In this issue I'm glad to review SYSTRAN PROfessional Standard, one of
the various machine translation solutions offered by SYSTRAN, a large
company dedicated to machine translation technology, an industry that is
growing with the Internet.
And here goes the second part of the article DELPHI VS. VISUAL BASIC
that started in the previous issue:
http://www.latiumsoftware.com/en/developers/0016.php
Best regards,
Ernesto De Spirito
eds2008 @ latiumsoftware.com
########################################################################
2. DELPHI VS. VISUAL BASIC (II)
Extensibility
=============
Visual Basic and Delphi are extensible. Both IDEs support add-ons to
add wizards and other extensions to the IDE, but what is more
interesting for programmers -better said, more needed- is the
possibility to use visual and non-visual objects apart from those that
originally come with the development tool.
ActiveX Objects
---------------
In Visual Basic you can use ActiveX objects. They come in .OCX files
that are like sort of DLLs that have special functions to expose objects
with their properties, methods and events. Accessing properties and
methods of ActiveX objects is slow because they are accessed with IDs.
String properties are UNICODE strings, while applications normally work
with ANSI strings, adding another overhead (UNICODE-ANSI or ANSI-UNICODE
conversion) when accessing string properties.
ActiveX objects provide encapsulation, but they don't provide
inheritance. Inheritance can be simulated by declaring the same methods
and properties of the "base class" and implementing them as calls to the
respective methods and properties of the "base class". The "derived
class" is therefore nothing but a wrapper from the "base class". Not
only this makes the source code long and difficult to maintain, but it
also makes the invocation of properties and methods of the new object
more than twice as slow than the original object.
VCL Components
--------------
Here is where OOP makes the difference. In Delphi you can use ActiveX
objects if you want, but Delphi offers something much better: the VCL
(Visual Controls Library), a hierarchy of classes that go from those
that offer basic common functionality to those highly specialized like
a database table. From these classes you can derive your own, and you
only have to code what you want to add or redefine, and this is why VCL
components are much smaller, faster and more easily maintainable than
ActiveX objects. They are faster due to the following reasons:
1) References to properties and methods are resolved at compile-time
("early binding") or --in the case of virtual or dynamic methods-- at
runtime ("late binding"), but in the latter case, the code used to
get the address of a method in the VMT (Virtual Methods Table) is
very small and efficient compared with the way used by ActiveX to
find its methods and properties. If a property refers directly a data
field, no function is called. With ActiveX, there's always a function
call.
2) Normally most of the properties and methods of the base class are
not redefined, so when you invoke one of these properties and methods
the call goes directly to those of the base class without having to
pass thru any intermediary. ActiveX inheritance is simulated, making
all method and properties invocations more expensive.
3) Normally you use ANSI strings (not UNICODE strings like ActiveX
objects), so there is no conversion overhead.
4) They are part of the executable and this means that it's not needed
to open a file to use them, load a list of the functions they expose,
etc.
Apart from being faster and significantly smaller, VCL components
consume less system resources then their ActiveX counterparts and their
inheritance mechanism allowsfor extensibility.
Availability of third-party libraries, objects, etc.
----------------------------------------------------
There are lots of ActiveX objects and DLLs in the net that you can use
with Visual Basic, but most are payware and most don't come with the
source code, not even after you pay their licenses, and when they come
with source code, it's in another language (usually Visual C++ or
Delphi), and this means that if you want to modify these sources you
need to 1) know something of that language, and 2) have the respective
development tool, and I don't think it's worth it to buy a license just
to occasionally make minor modifications to objects and libraries.
The perspectives in Delphi are a lot better, because in addition to
ActiveX and DLLs, you can find a lot of VCL components in the net,
being freeware most of them, many of them come with source code, and
most of those that are payware usually come with the source code
after you register or for an additional fee. And in which language is
the source code written? A very small minority are written in C++
Builder, but the overwhelming majority are in Delphi, of course, so you
don't have to learn a new language or use a different development tool
if you wish to modify them.
+------------------------------------------------------------------+
| Delphi is not limited to ActiveX. VCL components are faster, |
| smaller, source code is usually available (and in Delphi), and |
| the inheritance mechanism allows the easy creation of new VCL |
| components based on existing ones. |
+------------------------------------------------------------------+
Obsolescence
============
Among Visual Basic programmers, how many of them are still programming
in Visual Basic 4.0? And how many are programming in Visual Basic 5.0?
Almost all Visual Basic programmers I know are programming in Visual
Basic 6. With Delphi happens something completely different. A lot of
people are still programming in Delphi 3 or 4, and perhaps the minority
have Delphi 5, when Delphi 6 has just come to light. Why is that? Is it
that the upgrade is too expensive? Nah... On second thought, yes it is!
Please allow me to explain. What happens with Visual Basic is that -avid
of more features- Visual Basic programmers upgrade rapidly as soon as
there is a new version available. Delphi 3 C/S is so powerful that it is
not yet obsolete, and this explains why many Delphi 3 programmers don't
see the need to pay for an upgrade when they already have what they
need. Extensibility has also a lot to do with that.
+------------------------------------------------------------------+
| Visual Basic programmers need to upgrade too soon. Delphi is |
| so powerful, functional and extensible that its versions don't |
| become obsolete easily: in the long run, Delphi is cheaper. |
+------------------------------------------------------------------+
Programming power and functionality
===================================
Among many other things, with Delphi you can
1) Write commercial-quality, fast and small applications, libraries,
ActiveX objects and VCL components,
2) Create reports by code (or modify existing ones, for example to
change or add a column)
3) In general, everything that can be done visually (at design time)
can also be done programmatically (at runtime)
4) Easily write multi-threaded applications
5) View data in tables and queries at design time
6) Call API functions as if they were built-in functions
7) Embed assembler code for best performance where necessary
8) Take advantage of lots of VCL components available to give your
applications a distinctive look and feel and offer an improved
functionality.
9) Easily subclass existing VCL components to add functionality
10) Access new technologies not present when the IDE was released (for
example ADO access with Delphi 4) without having to upgrade
+------------------------------------------------------------------+
| Delphi offers programmers a power and functionality that |
| leaves Visual Basic and its limitations behind. |
+------------------------------------------------------------------+
Portability
===========
If you are interested in Linux, there is a Delphi for Linux (Kylix), and
I don't see there will be a Visual Basic for Linux...
+------------------------------------------------------------------+
| Kylix takes Delphi to the Linux platform, where VB won't go. |
+------------------------------------------------------------------+
------------------
This article will continue in the next issue. Meanwhile, please feel
free to send any comments to <eds2008 @ latiumsoftware.com>. I can't
answer all the messages but I promise to read them all. If you want to
debate a subject or say something publicly, you can do it in our forum
for software developers:
http://groups.yahoo.com/group/software-developers
software-developers-subscribe@yahoogroups.com
########################################################################
3. SYSTRAN TRANSLATION SOFTWARE
SYSTRAN PROfessional Standard
=============================
SYSTRAN PROfessional Standard is one of the many Machine Translation
software products developed by SYSTRAN, the world's leader in Machine
Translation. SYSTRAN PROfessional Standard is an excellent choice for
those who want to have emails, web content and documents translated
(for example from English to Spanish, Spanish to English, and other
language combinations available).
The software can work either as a standalone application or directly
integrated into Word, Outlook, Eudora, Internet Explorer and Netscape.
For example, in MSIE you just have to click the "Options (SYSTRAN)"
button to choose the language pair (for example "French to English") if
it's not the one you set as default, and then you click the "Translate
(SYSTRAN)" button to perform the translation and view the web page
translated in your browser. Really impressive.
As a standalone application, it looks very much like a text editor with
two windows (one for the original text and another for the translated
text). You can write the text to be translated, open files in TXT, RTF
and DOC (Word) formats, or copy and paste text from other applications.
Once you have the source text, you choose the language pair from a combo
in the toolbar if it's not the one you set as default, and then click
the "Translate" button next to it to perform the translation (the
translated text will appear in the target window). One nice thing about
the translation is that it keeps the layout of the original document
(fonts, bold, italics, colors, etc.).
The application can also translate files in TXT, RTF, DOC, HTML and SGML
formats. The PROfessional Premium edition can integrate into Excel, adds
support for Excel (XLS) and Powerpoint (PPT) files, and you can mark
multiple files to be sent to the translation queue.
Customization
-------------
For a more accurate translation, the software brings options that allow
you to choose the type of document (abstract, mail, journalism,
conversational, user's manual, etc.), determine if you want to have
imperative translated to infinitive or subjuntive, edit a list of words
you don't want to be translated, and select a Customer Specific
Dictionary (CSD).
The ability to create a CSD is very important. First because it allows
you to add new words to the built-in dictionaries, and second because
there are words in the original language that depending on the meaning
can be translated as different words in the target language, or there
are words in the original language that can be translated as different
synonyms in the target language. With a CSD you can override the
program's defaults and set the translation that is generally more
adequate for the kinds of texts you usually translate. In the Premium
edition you can have many CSDs to adapt the translation to different
fields (business, legal, medicine, etc.).
WinCSD is the application used to create CSDs. It can be invoked from
the icon in the program group or from a button in the toolbar of the
main window of SYSTRAN PROfessional Standard. It's very simple to use.
In essence, it keeps a list of words (with their grammatical function,
gender and desired translation), and with a click of a button you can
compile the list to generate the CSD that you can use with SYSTRAN
PROfessional Standard.
How does it work?
-----------------
SYSTRAN software uses special dictionaries that not only contain the
different grammatical uses and meanings of words and expressions, but
also rules that are applied to understand the relationships between
them to derive their most probable grammatical function and meaning in
the context of the whole phrase or sentence, providing this way an
"intelligent" translation that produces understandable sentences.
Machine Translation is not a magical solution and it doesn't replace
Human Translation, but when we take into account the overwhelming
amount of content that requires translations -which is growing daily-
Human Translation is no longer an option because that industry cannot
keep up in terms of their own capacity and costs. Machine Translation
is indispensable in today's globalized world.
Data sheet
----------
* Product name: SYSTRAN PROfessional Standard
* Version: 3.0.0.20
* Date released: Feb 16th, 2000
* Developer: SYSTRAN Software, Inc.
http://www.systransoft.com
* Features:
- Easy-to-use interface
- One-button translation
- Reproduction of the original document format and hyperlinks
- Built-in editor. Can open and save TXT, RTF and DOC files.
- Printing capability
- File translation (supports TXT, HTML, RTF, DOC and SGML)
- List of "not found" words
- Word list search
- Keyboard shortcuts for the most frequently used commands
- Check for updates
- Full on-line help
- "What's this"-like help
- Printed manuals (CD-ROM version)
- Direct integration into Word, Outlook, Eudora, IExplorer and
Netscape
* Language pairs:
- English <--> French
- English <--> German
- English <--> Spanish
- English <--> Portuguese
- English <--> Italian
* Customization:
- Selection of the type of document (abstract, mail, journalism,
conversational/colloquial, list of pieces, meeting draft, patents,
prosa and user's manual)
- 'Do Not Translate' lists of words
- Customer Specific Dictionary
* Number of entries in the dictionaries: 1,300,000
* Translation speed: 5 pages/min. (Pentium 500)
* Price:
- Download US$ 250.00 for 1 language pair
- Download US$ 350.00 for 5 language pairs
- For the CD-ROM version Contact SYSTRAN or check one of their
resellers
* More information: http://www.systransoft.com/Personal.html
Other solutions offered by SYSTRAN
==================================
SYSTRAN offers a wide array of automatic translation software products
and services around their scalable and modular state-of-the-art Machine
Translation architecture, that range from solutions for personal use,
to enterprise solutions, targeting Fortune 500 companies, portals,
technology licensing e-commerce and e-content providers, and public
administrations. These solutions include not only software applications
for the PC, the Internet or the corporate Intranet or Extranet, but also
services like customizations (to adapt the MT technology to the specific
needs of the enterprise and provide a greater degree of accuracy),
development of new field-specific or customer-specific dictionaries,
development of new language pairs, and even a Human Translation service.
SYSTRAN focuses in high-end customizable solutions. Accuracy is a key
component in the translation process and it requires customization to be
achieved to its maximum extent possible. SYSTRAN prides itself on
tailoring customization projects to customers' unique needs.
For more information about SYSTRAN and its family of products and
services, visit SYSTRAN's web site:
http://www.systransoft.com/
Babelfish
---------
In 1997, SYSTRAN and Altavista launched BABELFISH, the first Internet
translation service offering Internet users FREE translations in real-
time:
http://babel.altavista.com/
########################################################################
4. SOAP - Simple Object Access Protocol
SOAP was created by Microsoft near the end of 1999 and was proposed as
an industry standard last year, and basically it's an XML-based
platform-independent protocol for accessing remote objects. The protocol
simply defines the structure of the XML messages that contain requests
from the client and responses from the servers. These XML messages can
be transported thru HTTP (or other protocols, including SMTP and POP3
for example), so they can pass thru firewalls. You can develop SOAP
servers and clients in any platform and almost any programming language.
It's ideal for the Internet and Web Services.
To learn more about SOAP:
* What is SOAP?
http://www.soapwebservices.com/articles/what_is_soap.asp
* SOAP Frequently Asked Questions
http://www.develop.com/soap/soapfaq.htm
* Simple Object Access Protocol (SOAP) 1.1
http://www.w3.org/TR/SOAP/#_Toc478383490
* SOAP: The Simple Object Access Protocol
http://www.microsoft.com/mind/0100/soap/soap.asp
* Using Microsoft's SOAP Toolkit for remote object access
http://www.west-wind.com/presentations/soap/
* SOAP in the MSDN
http://msdn.microsoft.com/nhp/Default.asp?contentid=28000523
* SOAP resources
http://www.soapclient.com/Resources.html
* SOAP - WebServices Resource Center
http://www.soap-wrc.com/webservices/
########################################################################
5. ARTICLES IN THE WEB
* Microsoft .NET and C# - by Dr.Bob
http://www.drbob42.com/Delphi5/examin15.htm
########################################################################
YOU CAN HELP US
We need your help to keep this newsletter going and growing. The easiest
way you can help us is voting for us in any or some of these rankings to
help give more visibility to our web site and thus increase the number
of subscriptions to this newsletter:
http://top100borland.com/in.php?who=20
It's just a few seconds for you that REALLY mean much to us.
########################################################################
This newsletter is provided "AS IS" without warranty of any kind. Its
use implies the acceptance of our licensing terms and disclaimer of
warranty you can read at http://www.latiumsoftware.com/en/legal.php
where you will also find a note about legal trademarks. Articles are
copyright of their respective authors and they are reproduced here with
their permission. You can redistribute this newsletter as long as you do
it in full (including copyright notices), without changes and gratis.
------------------------------------------------------------------------
Latium Software http://www.latiumsoftware.com/en/index.php
------------------------------------------------------------------------
Copyright (c) 2001 Ernesto De Spirito. All rights reserved.
------------------------------------------------------------------------
|