Google Answers Logo
View Question
 
Q: Choosing the appropriate technology ( No Answer,   9 Comments )
Question  
Subject: Choosing the appropriate technology
Category: Computers > Programming
Asked by: madsrini-ga
List Price: $10.00
Posted: 26 Oct 2003 21:22 PST
Expires: 25 Nov 2003 21:22 PST
Question ID: 269972
Hi ,

I want to write a small software, and I need your assistance in deciding 
the technology to use.

1. The software should be installable in all version of the windows, i.e 
   windows 95 through windows XP .

2. We assume that the end user does not have any additional licensed software 
   besides to OS. ( not even MS Word )

3. The software should work only from a CD, like a lot of Game CDs.

4. The software needs to store data in the hard disk of the machine where it 
   is installed, for generating reports in the future. Even a rudimentary 
   database solution would be acceptable. Assuming that about 100000 as the 
   maximum records that would be stored during the life of the software.
   I`ve heard about relational objects in VB, do you have any idea where I can 
   get a more precise information.

6. Is it meaningful to ship a free database like MySQL along with the CD and 
   automate its installation and then create a bunch of tables using a script
   and make the datamodel and then use a connectivity driver and talk to the 
   DB from VB ? Is this too much overhead for a small software with only 10 
   screens ?
   

5. Data storage and retrieval should be handled in XML.

6. The software would do some computation based on a few inputs, the results of 
   which needs to be printed after appending a header and footer of user`s 
   choice. Which means that the software would have a bunch of headers and 
   footer for the user to choose from. The printing should have the option
   of using bold, italics and different fonts and font sizes, would it be 
   possible to achieve this by using some VB macros. ? 

I can give you more information in case you need.

Thanks for any help !

Madhu
Answer  
There is no answer at this time.

Comments  
Subject: Re: Choosing the appropriate technology
From: philosomatographer-ga on 27 Oct 2003 05:20 PST
 
Hi madsrini-ga

If you have the skills, I would definately recommend writing the
software in Java (which works beautifully with XML and MySQL) which
will have the added advantage of being runnable not only on windows,
but on all other operating systems. Windows usage is dwindling (Mac
OSX and Linux are growing, and it's best to be future-proof.

Using an IDE such as NetBeans, you can graphically design your user
interfaces, and it automates a lot of database code etc.

Answers to your questions:

1. If in Java, will run on any platform.
2. This is a safe assumptions.
3. This would be possible by having the software check for a key or
something on a drive which is bound to a system environment variable
or encrypted file. Not easy to do properly, but feasible.
4. MySQL or PointBase is your way to go, connect with JDBC from Java.
6. See 4
5. Java has excellent native XML support using the DOM or SAX API's.
6. Printing in Java is simple with the AWT/Swing API's, and with some
free libraries you can even generate PDF.

Hope you come right!
Subject: Re: Choosing the appropriate technology
From: stephenvakil-ga on 27 Oct 2003 07:25 PST
 
It depends on what your client base is.  Will these be people where
you can demand certain things, such as installing a JRE or similar? 
What type of machines?  Will the users object if you install MySQL
onto their machines?

You could easily do everything except the cd verification above in MS
Access, which would not require installing any addtional software on
the client most likely.  For the cD verification, you would probably
need a 3rd party product to be safe no matter what you did.

If installing JRE and MySQL, etc. is not a concern, Java is also a
good option.

Plain old VB would work fine too.
Subject: Re: Choosing the appropriate technology
From: ramachandran-ga on 27 Oct 2003 20:57 PST
 
Hi Dyno,

#1. if you are very satisfied with a windows installation, then you 
should go for a Microsoft technology products rather than a Java based
application. Java needs JRE to be installed in the client machine.
More over JDBC is not always the best way to implement DB operations.
Performance wise it is very costly. I suggest you to go for any
Microsoft technology products like VB 6.0 or VC++ 6.0. If you ask for
an option I shall suggest VC++ 6.0, over VB as VC gives you more grip
over VB and performance wise VC++ is better than VB & you  can get
some low level API's to handle various problems.

Suggestion : VC++ 6.0

#2.No Additional Software is needed as such.
 
#3.This can be easily done by using the API's provided by VC++ itself.
 
#4. Relational objects in VB are not going to serve the purpose. If at
a time,
    i.e. say you are not going to process more than 2000 records at a
time
   the better solution will be to go for a optimized file storage.(
like indexed or associative mapped,serialized(like a Hash) file
structures)which are used effeciently to write DBMSs'. you can
implement data structures like Hash , Binary trees for most effecient
way of accessing data.
 
Suggestion: use optimized file structures as storage.

#6.Using MySQL is good, but we need to ship it along with the cd &
once you store the data it is not secure. Even with out the help of
your software you can still query the database. Still, the user needs
to run the MySQL server process
    if he has stopped it or disabled it. He should accept to install
it in his/her system.

Suggestion: Don't use any DBMS.

#5.You can store and retrive data as serialized XML Objects in VC++
to/from  files. MSXML object provides facilities to handle XML objects
effeciently.

Suggestion : XML Handling is not a problem in VC++.

#7. In Java printing API's are not as good as those which are provided
by Microsoft stuff.  Printing in Java are very primitive and I have
got a terrific experience with printing in java using AWT &
Swings.This can be done easily with the GDC in VC++( text mode &
Graphics mode if you are providing graphical  features.

Suggestion: Still, VC++ is the best option


Conclusion: Use VC++ 6.0 for developing the application. For
persistance of  data don't use any RDBMS/DBMS a very welll written
optimized file structure will serve the purpose easily. Printing can
be handled more effeciently in Microsoft Products than in Java.
Subject: Thanks a lot !!
From: madsrini-ga on 27 Oct 2003 21:33 PST
 
Thanks a lot to philosomatographer-ga, stephenvakil-ga and ramachandran-ga !!
All Your suggesstions are really valuble.

Kind regards,

Madhu
Subject: Re: Choosing the appropriate technology
From: madsrini-ga on 28 Oct 2003 01:54 PST
 
Hi, 

This is Ramesh Hariharan from calcutta, India.

I think u shud go either the java way or VC++ way, depending on the
amount of
money that u have. if u want to sell it, u require a licensed copy of
VC++. Also, java imposes the requirement of having a JRE on the
desktop. Of course, JRE is free and you can ship your JRE with the CD
(a  few MBs).

For database, if you decide to go with a DBMS, the best option would
be to choose MS Access, since it runs on all Windows machines without
imposing any requirements on the client machine, in contrast to MySQL
or PointBase. But then, you cannot run it on  non-Windows OS (I
think).

Contrary to what some people think, both Java and MS technologies
provide robust support for XML and database access. Same goes for file
system storage. Again, contrary to what people think, it's become easy
to do graphics programming and print management in java using Swing.
But the fact is, it still requires you to go through a learning curve.
In contrast, the learning curve is slightly smaller in case of
Microsoft technologies. But Java has a lot of free libraries on offer,
and the robustness of development tools makes it a compelling
alternative to Microsoft.

If you plan to use the .NET version, the C# programming language is
the way to go. It does everything that java does, it could be made
cross platform in the future. It provides the same level of
abstractions that java does, and it does it in a better way.
  
You could probably write a C# version for Windows and a Java version
for linux. As you go along, you'd learn the ins and outs of both the
technologies.

Ramesh
Subject: Re: Choosing the appropriate technology
From: madsrini-ga on 28 Oct 2003 02:06 PST
 
Ramesh,

Thanks for your comments !

Dont you think MS Access requires a license ?

-Madhu
Subject: Just Boasting the power of C/C++/VC++ : LOL
From: ramachandran-ga on 28 Oct 2003 02:22 PST
 
C++ is approximately 7.7 times faster than Java at floating point
matrix addition.
C++ is approximately 7.2 times faster than Java at integer matrix
addition
C++ is approximately 7.2 times faster than Java at calculating the
product of a floating point matrix.
C++ is approximately 7.4 times faster than Java at calculating the
product of an integer matrix.
C++ is approximately 8.9 times faster than Java at filling and
printing a SLL with data from standard input. Java is considerable
slower at inputting data from standard input than C++; especially when
compared to the performance difference of the arithmetic test
discussed above.

C++ is approximately 14.9 times faster than Java at filling and
printing a SLL with data from file input. C++ performs much better
than Java at this test than at any other. Most of the other timings
indicated C++ was seven to eight times as fast but, in this case, C++
is nearly fifteen times faster. Clearly, C++ handles file I/O much
more efficiently than Java does.

What does all this data mean? For starters, it means Java is
definitely slower than C++. There was not a single test performed
where Java was within five times as fast as C++. A plot of the number
of times real execution of C++ was faster than Java clearly shows two
important trends. First, most of the data indicates that C++ is seven
to eight times faster than Java. All of this information comes from
the matrix calculations. Based on this data, it is safe to assume that
C++ is approximately seven to eight times faster than Java at
arithmetic. The other interesting trend comes from the line that shows
the number of times faster C++ is than Java for inputting data into a
program from a file. The line is much higher up on the vertical axis
because C++ is far faster than Java at this type of operation. The
data indicates that any program that performs a large amount of file
I/O, such as a database, would perform much slower if it were
implemented in Java rather than C++.

Java has many advantages, but it also has a large disadvantage. Java
performs many times slower than C++, especially when it comes to I/O
operations. Although this performance difference cannot be ignored, it
may not be overly important. Modern day computers are very fast and
the speed difference may often translate to waiting for 8 milliseconds
for Java as opposed to 1 millisecond for C++. Java may be much slower,
but, from the users perspective, there is relatively little
difference. The advantages to Java outweigh its disadvantages in most
cases. The ease of development, reusability and portability make Java
well worth the time to learn.


Also refer http://verify.stanford.edu/uli/java_cpp.html
Subject: Re: Choosing the appropriate technology
From: ramachandran-ga on 28 Oct 2003 05:03 PST
 
okie, let me be very clear in my point.

Let's see what are the advantages and disadvantages of using various
technologies discussed.

Java:
Pros'
#####
*You dont need a license for development.
*You can get more developers on Java Platform.
*Serialization & file handling support is supported.
*You can connect to any Database using JDBC( if you want to change the
DB you support, or you can always support any database dynamically to
connect at runtime)
*XML Handling is fully supported.
*you can make it as a client server or Internet based application any
time you want by adding some methods & some servlets or JSP.
*you can have thin (Web) or fat (awt/swing) clients.
*Can run on any platforms.

Cons
####
*Very slow/poor performance.
*Primitive Printing API ( You cannot do much with that)
*You need JRE to be shipped along & installed. (another 5-6 MB)
*Cannot have very good cd-checks directly.( cannot detect piracy)
*Cannot directly access registry in MS platforms.
*Cannot have powerful & very useful components supplied by MS.( like
Grids , you have tables in java though)
*Can be decompiled to source code again.
*Takes a lot of memory while running.
*Processing time is more for I/O operations & file handling.

C++/VC++
########

pros'
----
* Very powerful features.
* Greater control of hardware.( can check for piracy)
* Have many components shipped along with it.
* Great graph drawing features.
* Can produce precise output on printers & on screen.
* Can have a very rich UI.
* Cannot be cracked ( easily ??).
* File handling is very powerful 
* Support for XML handling is good enough. 
* Processing time is very very less compared to Java 
( you need it for reporting. There might be calculations 
& extra processing on data to produce the output.)
* Supports almost all databases. ( you have ADO & ODBC APIs)

Cons'
#####
* Need license for development & selling.
* Need high level of expertise to code.
* Resources available are very less.
* Need expert lever programmers to develop the effecient & 
effective file system designs if not using DBMS.
( This is very easy in java as we can write serialized objects 
directly to files)
* Conversion to internet based application is not easily possible
( almost not)


C#
Pros' & Cons'
############
* No one knows much about it so you can boast.
* Very simillar to java but not platform independent.
* No extra features or BIG features that are not there in java.
* Can be internet enabled.
* Does have a good DBMS connectivity API's ( ADO.NET is also there)
* Needs the client system to be updated with patches for DOTNET
platforms.
* Will run only on windows. ( ofcourse MONO is there for
cross-platform support)
* Have Web Services features. And ofcourse SOAP.( VC & Java  also have
that)
* Important point to note is "Does not have any features that are not
there in Java & VC++(or VB)

Looking forward for a solution I suggest
1. It shall be either Java or VC++. ( 40:60 || 60:40)
2. No DBMS is needed as such.
3. C# is ruled out.

Rest is left to you.
:)
Have fun.
Subject: Re: Choosing the appropriate technology
From: madsrini-ga on 28 Oct 2003 21:39 PST
 
Thanks a lot Ramji !

Madhu

Important Disclaimer: Answers and comments provided on Google Answers are general information, and are not intended to substitute for informed professional medical, psychiatric, psychological, tax, legal, investment, accounting, or other professional advice. Google does not endorse, and expressly disclaims liability for any product, manufacturer, distributor, service or service provider mentioned or any opinion expressed in answers or comments. Please read carefully the Google Answers Terms of Service.

If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you.
Search Google Answers for
Google Answers  


Google Home - Answers FAQ - Terms of Service - Privacy Policy