473,473 Members | 1,523 Online
Bytes | Software Development & Data Engineering Community
Create Post

Home Posts Topics Members FAQ

General Beginner Advice

Hello

I am intersting in developing and my background is VBA used in Excel and a
brief intro to Java.

I am interested in learning beyond VB and feel that C++ would be a very good
language to get to know and give a lot of flexibility (if not tough to learn).

I would like some advice on the merits of learning C++ versus C# or Visual
Basic or Java for that matter.

Please forgive my naivety at this point. I want to buy the Visual Studio
that MS offers. Presumably I would want to buy Visual Studio.NET and this
would enable programming in both Visual Basic and C++ for both Windows and
Internet projects?

Before I part with my cash I want to ensure that i am getting the right
product. Somebody told me that VB 6 is 'outdated' and that I must get .NET.
Does this make sense?

I would greatly appreciate any advice that anybody can offer. I am excited
about starting some new learning.

Regards
Alex
Nov 17 '05 #1
6 1557
"Alex" <Al**@discussions.microsoft.com> wrote in message
news:BA**********************************@microsof t.com...
I am intersting in developing and my background is VBA used in Excel and a
brief intro to Java.
OK.
I am interested in learning beyond VB and feel that C++ would be a very
good
language to get to know and give a lot of flexibility (if not tough to
learn).
Right on all counts.
I would like some advice on the merits of learning C++ versus C# or Visual
Basic or Java for that matter.
C++ is the most widely used general purpose language whose goal is to give
its developers the widest lattitude. C# is a great language for developing
applications that run on the .Net platform and Java isn't bad as a
cross-platform, object oriented language. Both C# and Java favor simplicity
over performance and expressiveness.
Please forgive my naivety at this point. I want to buy the Visual Studio
that MS offers. Presumably I would want to buy Visual Studio.NET and this
would enable programming in both Visual Basic and C++ for both Windows and
Internet projects?
I wouldn't buy anything yet. I'd go here and download the betas of the
starter editions of the next version of the developer tools here:

http://lab.msdn.microsoft.com/express/

Get a feel for the language and environment and choose one you like.
Sometime later this year (the products all have 2005 in the name <g>) you
should be able to buy the released version of your chosen language.
Somebody told me that VB 6 is 'outdated' and that I must get .NET.
Outdated or not, it is dead. Mainstream support is over. MS has said they
will invest no more resources in that tool.
Does this make sense?


It is a reality.

Regards,
Will
Nov 17 '05 #2
Mr DePalo

Thanks for your response. A few more questions if that is ok.

(1) Presumably I do not need to pay for a beta version of software and there
are no strings attached?

(2) On the subject of programming, I read a pro develepor ( I am just a
hobbyist) say that it is bext to start with C as this would give the greatest
scope to progress to other languages e.g. C++, C#, Java. Is that fair? Or can
one easily migrate to other languages once one is learnt?

(3) My impression has always been that C# was developed to overcome the
shortfalls of C and C++. This seems to imply that of the three C based
languages that C# is the best? For example, I hear things like C++ does not
have efficient 'garbage collection' whereas that is a forte of Java. I don't
profess to understand all this and am not even sure at my level of
programming it even matters. Still, as an MVP could you comment

(4) My first introduction was with VBA and I thoroughly enjoyed it and was
enthused by the ability to create my own applications to streamline
day-to-day work. I am looking to expand so that I can create standalone apps
on the Windows platform as well as have the ability to create some web based
stuff too. I did a search on the most sort after computer skills and C++ and
Java figure highly, more so than VB. So I figured that C++ must be a good
starting point and have many worthwhile uses.

(5) Finally, a dummies question. What do I need to create an application on
Windows that can sit as a desktop icon and run without any other environemnt
open? Can I do this with Visual Studio or do I always have to have it running
in the background?

In general I am trying to find the best way to go. Given the effort I will
put in to learning a new language I would like to make the right choice from
the start.

I hope that you can find time to comment. I'd enjoy listening to your
opinions.
Best regards
Alex

"William DePalo [MVP VC++]" wrote:
"Alex" <Al**@discussions.microsoft.com> wrote in message
news:BA**********************************@microsof t.com...
I am intersting in developing and my background is VBA used in Excel and a
brief intro to Java.


OK.
I am interested in learning beyond VB and feel that C++ would be a very
good
language to get to know and give a lot of flexibility (if not tough to
learn).


Right on all counts.
I would like some advice on the merits of learning C++ versus C# or Visual
Basic or Java for that matter.


C++ is the most widely used general purpose language whose goal is to give
its developers the widest lattitude. C# is a great language for developing
applications that run on the .Net platform and Java isn't bad as a
cross-platform, object oriented language. Both C# and Java favor simplicity
over performance and expressiveness.
Please forgive my naivety at this point. I want to buy the Visual Studio
that MS offers. Presumably I would want to buy Visual Studio.NET and this
would enable programming in both Visual Basic and C++ for both Windows and
Internet projects?


I wouldn't buy anything yet. I'd go here and download the betas of the
starter editions of the next version of the developer tools here:

http://lab.msdn.microsoft.com/express/

Get a feel for the language and environment and choose one you like.
Sometime later this year (the products all have 2005 in the name <g>) you
should be able to buy the released version of your chosen language.
Somebody told me that VB 6 is 'outdated' and that I must get .NET.


Outdated or not, it is dead. Mainstream support is over. MS has said they
will invest no more resources in that tool.
Does this make sense?


It is a reality.

Regards,
Will

Nov 17 '05 #3
"Alex" <Al**@discussions.microsoft.com> wrote in message
news:0E**********************************@microsof t.com...
Mr DePalo
We are all on a first name basis here.
Thanks for your response.
You are welcome.
A few more questions if that is ok.
Questions are what drives these groups.
(1) Presumably I do not need to pay for a beta version of software
Correct. That's why I suggested it.
and there are no strings attached?
Apart from installing the pre-requisites, e.g. the .Net framwork, that is
correct, there are no strings. Betas tend to expire (stop working) at some
point in the future. I don't know what that date is.
(2) On the subject of programming, I read a pro develepor ( I am just a
hobbyist) say that it is bext to start with C as this would give the
greatest
scope to progress to other languages e.g. C++, C#, Java. Is that fair? Or
can
one easily migrate to other languages once one is learnt?
There is not unanimous agreement on this point. But, among the people whose
judgement I trust, teaching a novice C before C++ is generally considered to
be the wrong thing to do. On the other hand, there is pretty general
consensus that one should start with generic C++ and not introduce the extra
complexity of learning to program Windows or Linux or whatever flavor of
Unix it is that the Mac runs.
(3) My impression has always been that C# was developed to overcome the
shortfalls of C and C++. This seems to imply that of the three C based
languages that C# is the best?
It is a really nice, neat language, whose goal is, IMO, to reduce complexity
and improve productivity. But it is only an option on machines on which the
..Net framework is already installed.
For example, I hear things like C++ does not
have efficient 'garbage collection' whereas that is a forte of Java.
C++, like C, leaves all of the details -including memory management - to the
programmer. It is _no_ garbage collection. If you don't take out the trash,
no one will.
I don't profess to understand all this and am not even sure at my level of
programming it even matters.
There is no easy answer. The switch from _anything_ else to C++ is likely to
leave you feeling like Dorothy when she was whisked out of Kansas for Oz.
:-)
Still, as an MVP could you comment
Sure, MVPs always have something to say about everything. <g>

I don't want to dissuade you from learning C++.

I don't want you to think it will necessarily be as much fun, say, as VB or
VBA, either.

It is for lots of us. But it will take time and effort. In general, C++ it
is _not_ a hobby, rather it is a vocation.
(4) My first introduction was with VBA and I thoroughly enjoyed it and was
enthused by the ability to create my own applications to streamline
day-to-day work. I am looking to expand so that I can create standalone
apps
on the Windows platform as well as have the ability to create some web
based
stuff too. I did a search on the most sort after computer skills and C++
and
Java figure highly, more so than VB. So I figured that C++ must be a good
starting point and have many worthwhile uses.
C++ imposes the least restrictions on the developer. But if your focus is
getting something done _soon_, IMO C++ is the wrong choice. I hope you get
advice from others as well, but I don't see you writing a windowed
application in C++ for 6 months to a year. On the other hand, using C# and
WinForms you'd probably be loooking at a learning curve less than half as
steep.
(5) Finally, a dummies question. What do I need to create an application
on
Windows that can sit as a desktop icon and run without any other
environemnt
open?
What you need is an enviornment that allows you to call the shell functions
in the Windows Application Programming Interface (aka Win32 API). Trying to
pick up the API at the same time you pick up a new language is a huge
undertaking.
Can I do this with Visual Studio or do I always have to have it running
in the background?
Yes.
In general I am trying to find the best way to go. Given the effort I will
put in to learning a new language I would like to make the right choice
from
the start.
I wish I had an easy answer for you. I don't. That's why I suggested the
empirical approach of downloading the express editions to find out which
language suits you best.
I hope that you can find time to comment. I'd enjoy listening to your
opinions.


Done. My pleasure.

Regards.
Will
Nov 17 '05 #4
Additional comments for Alex:

"William DePalo [MVP VC++]" <wi***********@mvps.org> skrev i meddelandet
news:uM**************@TK2MSFTNGP12.phx.gbl...
"Alex" <Al**@discussions.microsoft.com> wrote in message
news:0E**********************************@microsof t.com...
Mr DePalo


We are all on a first name basis here.
Thanks for your response.


You are welcome.
A few more questions if that is ok.


Questions are what drives these groups.
(1) Presumably I do not need to pay for a beta version of software


Correct. That's why I suggested it.
and there are no strings attached?


Apart from installing the pre-requisites, e.g. the .Net framwork, that
is correct, there are no strings. Betas tend to expire (stop working)
at some point in the future. I don't know what that date is.
(2) On the subject of programming, I read a pro develepor ( I am just
a
hobbyist) say that it is bext to start with C as this would give the
greatest
scope to progress to other languages e.g. C++, C#, Java. Is that
fair? Or can
one easily migrate to other languages once one is learnt?


There is not unanimous agreement on this point. But, among the people
whose judgement I trust, teaching a novice C before C++ is generally
considered to be the wrong thing to do.


The problem is that some parts of C, like string handling and I/O, have
*lots* of little details to learn. When moving to C++, there are other
ways to do this, and those parts of C are very rarely used in idiomatic
C++. So you will have to learn, and then un-learn, some parts of C.

[...]
For example, I hear things like C++ does not
have efficient 'garbage collection' whereas that is a forte of Java.


C++, like C, leaves all of the details -including memory management -
to the programmer. It is _no_ garbage collection. If you don't take
out the trash, no one will.


The way C++ works, there is generally much less need for garbage
collection than in Java. Most often, a class owns its memory resources,
and will know when it is time to release it.

Should you really need it, you can hire a garbage collector anyway. Even
though it is not defined by the language, there is nothing (much) that
stops you from using one.

http://www.hpl.hp.com/personal/Hans_Boehm/gc/
[agree on everything else]

Bo Persson
Nov 17 '05 #5
Alex <Al**@discussions.microsoft.com> wrote:
[...]
(2) On the subject of programming, I read a pro develepor ( I am just a
hobbyist) say that it is bext to start with C as this would give the greatest
scope to progress to other languages e.g. C++, C#, Java. Is that fair? Or can
one easily migrate to other languages once one is learnt?
I disagree strongly.
C++ allows you a to do a lot of things in a better
(read: less error prone) way than C. If you learn
C first, you will have to fight habits that you
needed to learn the hard way to become a good C++
programmer.
(3) My impression has always been that C# was developed to overcome the
shortfalls of C and C++. This seems to imply that of the three C based
languages that C# is the best? For example, I hear things like C++ does not
have efficient 'garbage collection' whereas that is a forte of Java. I don't
profess to understand all this and am not even sure at my level of
programming it even matters. Still, as an MVP could you comment
C++ is a multi-paradigm language. It does actively
support structured, object-oriented, generic, and
other ways to program. C was created to support
structured programming, Java was created to support
object-oriented programming. (I don't know C# well,
but I think it's all about OO, too.)
C# and Java are designed so that they require less
attention from the programmer. For example, they
take care of all memory issues. However, this comes
at a cost. They are less flexible and don't allow
you to fiddle with the low-level details. Java (I
haven'T looked into C#) mainly only knows dynamic
memory, whereas C++ has stack-based automatic
objects, which are cheaper (performance-wise) and
feature deterministic destruction. The latter
enables very elegant resource management.

I have taught C++ to programming novices and to
those who already had exposure to Java. IME it
seems relatively hard to switch from Java to C++.
OTOH, it seems like C++ programmers pick up Java
rather easily. From what little I know about C#,
I would suppose it is similar there.
(4) My first introduction was with VBA and I thoroughly enjoyed it and was
enthused by the ability to create my own applications to streamline
day-to-day work. I am looking to expand so that I can create standalone apps
on the Windows platform as well as have the ability to create some web based
stuff too. I did a search on the most sort after computer skills and C++ and
Java figure highly, more so than VB. So I figured that C++ must be a good
starting point and have many worthwhile uses.
If you decide to learn C++, be prepared for a much
steeper learning curve than in VB, Java, or C#.
You should probably plan to learn "pure" C++ first,
and only then add platform-specific stuff (which
you'll need to create really useful apps).
Take time to pick good books and be prepared that
you probably need more than one to learn C++. You
can find good book reviews at www.accu.org. If you
are prepared for a steep learning curve, I would
recomment looking at Koenig/Moo's "Accelerated C++"
(about 250 pages), otherwise you should probably
look at Lippmman/Lajoie/Moo's "C++ Primer" (about
1000 pages, watch for the newest edition, IIRC it
is the 4th).
(5) Finally, a dummies question. What do I need to create an application on
Windows that can sit as a desktop icon and run without any other environemnt
open? Can I do this with Visual Studio or do I always have to have it running
in the background?
You can certainly do this using VS, but as I said:
If you plan to do this in C++, it might be better
you learn C++ first.
In general I am trying to find the best way to go. Given the effort I will
put in to learning a new language I would like to make the right choice from
the start.
What is right depends on many things and is very
different for everyone.
[...]


Schobi

--
Sp******@gmx.de is never read
I'm Schobi at suespammers dot org

"Coming back to where you started is not the same as never leaving"
Terry Pratchett
Nov 17 '05 #6
Hi Alex,

With J-Integra for COM, you can also use Java to access and control VBA
of Excel or access and control Excel from Java directly. J-Integra for
COM is an interoperability tool which bridges any COM components (e.g.
Microsoft Office) and any Java objects (e.g. Application, Applet, JSP,
Servlet, J2EE, etc).

For a free evaluation, visit http://j-integra.intrinsyc.com/

Regards,

Raymond HE
Intrinsyc Software International, Inc.
J-Integra Interoperability Solutions
http://j-integra.intrinsyc.com/
When Web Services are not enough

Nov 17 '05 #7

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

16
by: Rod Carrol | last post by:
Hello all, As a beginner I've been exeperiencing lots of errors while building my website, (I'm currently attempting to implement a member login/registration piece for my site using mySQL and...
6
by: Örjan Skoglösa | last post by:
Hi all, My first posting here. I would be very thankful for a general advice about which "way to go" to accheive a certain arrangement on a web page. The page should show a list of items (a...
18
by: mitchellpal | last post by:
Hi guys, am learning c as a beginner language and am finding it rough especially with pointers and data files. What do you think, am i being too pessimistic or thats how it happens for a beginner?...
5
by: Minlar Ginger | last post by:
HIi all: I am a new beginner to python, would you like give me some advice on studying it? Welcome to list some book on python for me. Thanks a lot.
2
by: nakista | last post by:
Hello ,i'm a beginner in C++ .So i'm finding some documents for beginner .If you know ,please send me some useful links or advice. Thanks for helping!!!
37
by: dmoran21 | last post by:
I am a mathematician trying to write a program in C to do some curve fitting. When I get to the point where I attempt to enter data in my arrays, I get a General Protection Exception error message....
1
by: Blue_hatter | last post by:
Hey Guys, I'm a newbie to the whole C++ Programming thing as I think I said before in a post. The thing is, I have this idea that might help me to learn at a better pace than I am doing currently....
6
by: Solo.Wolve | last post by:
I've just finished the K&R c, And begin to study c++ myself,so can anyone give me some advice?such as some books to read,and something to notice? Thank you very much.
3
by: Ben Keshet | last post by:
I have a probably simple beginner's question - I have a script that I am currently able to print its output. instead, i want to write it into a file - I tried different versions of write() but...
0
by: Hystou | last post by:
There are some requirements for setting up RAID: 1. The motherboard and BIOS support RAID configuration. 2. The motherboard has 2 or more available SATA protocol SSD/HDD slots (including MSATA, M.2...
0
marktang
by: marktang | last post by:
ONU (Optical Network Unit) is one of the key components for providing high-speed Internet services. Its primary function is to act as an endpoint device located at the user's premises. However,...
0
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers,...
1
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows...
0
agi2029
by: agi2029 | last post by:
Let's talk about the concept of autonomous AI software engineers and no-code agents. These AIs are designed to manage the entire lifecycle of a software development project—planning, coding, testing,...
0
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The...
0
by: adsilva | last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
0
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated ...
0
muto222
php
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.