Boss wants me to program

X

xeys_00

I'm a manager where I work(one of the cogs in a food service company).
The boss needed one of us to become the "tech guy", and part of that is
writing small windows programs for the office. He wants the development
work done in house, and he knows I am in school for a CS minor. I know
basic C++(Part 2 of that is in the fall), and I will be taking Java 1
in the fall also. What is the easiest way for me to make windows
programs that will do basic things like(Inventory, Menu Management,
etc...)? I have heard visual basic is where it's at. I want to keep an
open mind though, so I am wondering if python could be an option. The
programs have
no speed requirement. But they must be pretty, and not confuse my
boss. Plus he wants well documented help for each function. I asked the
windows programming group, but I thought I would ask here also. Thanks.

Xeys
 
A

Apple Grew

I think since speed is not such an issue (I heard that python can make
faster GUI programs) you should use Visual Basic. It is very well
suited for Windows programming. There is the good thing that you can
visually create the GUI hence it is easier to create the GUI.
 
W

wittempj

I guess you need a database plus GUI layer for your apps, you might
look in to MS Access (or Open Office 2.0 Base, but this is still beta,
so I don't think your boss will like that) for that
 
G

Guest

Apple Grew said:
I think since speed is not such an issue (I heard that python can make
faster GUI programs) you should use Visual Basic. It is very well
suited for Windows programming. There is the good thing that you can
visually create the GUI hence it is easier to create the GUI.

Of course, you can do that with Python, too, with Glade
(http://www.jamesh.id.au/software/libglade/) or Boa Constructor
(http://boa-constructor.sourceforge.net/). (There might be more of
them.)
 
B

Brian

Hi Xeys,

Even though I absolutely love Python...

Microsoft Visual Basic (.NET) would be your best bet for this type of
software development. It allows you to create GUI apps that can work
with a variety of database options, such as Access or MS SQL Server.

My personal opinion is this:
 
P

phil

I see several on this list have their opinion and lean toward VB.
Not me, done that and vc++. Hate'em. Been developing 30 years
and I like control over what I'm doing and Python and Tkinter are
the best tools I've ever used. And for the most part IDE's like
BOA Constructor are just confusing. IMHO.
 
T

Thomas Bartkus

Brian said:
Hi Xeys,

Even though I absolutely love Python...

Microsoft Visual Basic (.NET) would be your best bet for this type of
software development. It allows you to create GUI apps that can work
with a variety of database options, such as Access or MS SQL Server.

My personal opinion is this:
I would modify that.

1) VB shines in the MS Windows/Office realm.
2) Python shines everywhere else.

Thomas Bartkus
 
B

Brian

Thomas said:
I would modify that.

1) VB shines in the MS Windows/Office realm.
2) Python shines everywhere else.

True. However, it's also important to remember that most computer
systems (at least in the United States) come with Microsoft Windows
installed on them. You have to write software for the platform that one
will be working with -- in most cases, that's Microsoft Windows. :)

Brian
---
 
J

James

I'm a manager where I work(one of the cogs in a food service company).
The boss needed one of us to become the "tech guy", and part of that is
writing small windows programs for the office. He wants the development
work done in house, and he knows I am in school for a CS minor. I know
basic C++(Part 2 of that is in the fall), and I will be taking Java 1
in the fall also. What is the easiest way for me to make windows
programs that will do basic things like(Inventory, Menu Management,
etc...)? I have heard visual basic is where it's at. I want to keep an
open mind though, so I am wondering if python could be an option. The
programs have
no speed requirement. But they must be pretty, and not confuse my
boss. Plus he wants well documented help for each function. I asked the
windows programming group, but I thought I would ask here also. Thanks.

Xeys

Since you already know a bit of C++, you can try C++ Builder 6 from
Borland. It's old but you may even get the Personal Edition for free if
you download the Nokia toolkit. Personal edition doesn't have database
components included however. C++ is not an easy language beyond class
room use but C++ Builder is about as easy as it can be made. You don't
need to truly understand C++ and OOP to get by with some simple Windows
apps in C++ Builder. And most of what you learn about VCL (GUI library
in C++ Builder) will more or less translate to other toolkits. Stay off
VC++. You need some expertise to use it. C++.NET may be OK for you too.
C# will also be natural to someone with C++ know how.

Visual Studio.NET(C# and C++.NET in your case) and Delphi are other
good options. SharpDevelop (.NET) is free and should be very easy to
understand for beginners. You can also look at the (free trial) beta
release of Visual Studio 2005 if you want something a little more
sophisticated but SharpDevelop is probably better to start with (not
too many features to overwhelm). Boo is a Python like language that
works with .NET and is well integrated with SharpDevelop.

Java GUI toolkits (Swing and SWT) use sophisticated OOP designs and are
very complex. Not easy for beginners to wrap their minds around. Non
professionals should stay off them. Your Java 1 will not prepare you
enough for them.

While Python is a wonderful language, GUI Builders (Boa, PythonCard,
Glade etc) available for it are nowhere close in maturity compared to
the ones I mentioned above. So stay off Python for GUIs for now. You
can come back once you have understood programming better.

As for Visual Basic, version 6 is very easy to learn and use for basic
applications but is no longer sold (other than used copies at eBay).
The new VB.NET is a bit more sophisticated. You will be better off with
C# rather than VB.NET (both are essentially the same) here since it
will be a more familiar syntax for you.

The best advice I can give is to pick a language/IDE with which you can
get some live help (friend/neighbor/colleage) who can hold your hands
for a while.
 
P

Peter Maas

Brian said:
Microsoft Visual Basic (.NET) would be your best bet for this type of
software development. It allows you to create GUI apps that can work
with a variety of database options, such as Access or MS SQL Server.

Maybe you're right with .net, but I'd go for C# when doing .net. Basic
is the ugliest and most mind corrupting language I've come across. And
the OP has a C/C++ background.
 
J

Jordan Rastrick

The problem with all posts that say "Use Visual Basic, its easy for
small programs" is that small programs, seemingly inevitably, become
bigger programs (unless they become dead, unmaintained programs). If
your users - you, your boss, coworkers, whoever - find your software
useful, and you start to get even remotely enthusiastic for the
project, then you'll find yourself extending and developing new
features, as well as having to fix problems in your existing code.

And while I'm personally no expert at language design, I've noticed it
seems to be a pretty solid consensus among the actual experts that VB
is one of the most atrociously designed mass market programming
languages in existence. Fine for small programs, sure. But if you ever
want to even think about doing bigger programs, or extending those
useful smaller programs to do more, or even maintain and fix bugs in
your existing code, then VB is not going to be your friend.

The major traditional advantage of VB is that it integrates very
smoothly and easily with Windows, and it has powerful and simple GUI
building tools.

However, Microsoft have essentially displaced VB from lone occupancy of
this niche with .NET. And part of the point of .NET is that its not
forcing you into one particular choice of language. So there's no
advantage to be had from using Visual Basic; youre better off using a
language that might give you some sort of insight into good programming
practice, not to mention one that'll allow you to develop a serious
application if you ever need to.

Ultimately, if you want a current, supported version of VB, you have to
use VB .NET anyway, and if you're going to use .NET, why use VB at all?

If you have some C++ experience, C# is probably a good bet, as has been
pointed out. You get all the advantages that VB used to provide, with
far fewer of the drawbacks, and it'll stand you in good stead to learn
Java.

Theres even a version of Python for .NET, called IronPython. The major
advantage of this is that you get to program in Python, which I can
tell you from experience is a lot more enjoyable and pain-free than C,
C++, Fortran, or Java (and, I would highly suspect, VB and C#). But
apparently the available GUI builders aren't as good for Python -
having not done a whole lot of GUI building in general, I'll leave this
for more experienced people to judge.
 
P

phil

Theres even a version of Python for .NET, called IronPython. The major
advantage of this is that you get to program in Python, which I can
tell you from experience is a lot more enjoyable and pain-free than C,
C++, Fortran, or Java (and, I would highly suspect, VB and C#). But
apparently the available GUI builders aren't as good for Python -
having not done a whole lot of GUI building in general, I'll leave this
for more experienced people to judge.

From 30 years of application development experience I will tell you
NOT HUMBLY, that Python is easily the most productive, the most
read-write and the most elegant of any of the above. Handsdown
better than Java, the runner up in that group.

Now let me explain somthing about "GUI buiders" or IDE's, from some
experience, Visual Studio being the worst.

The IDE takes a picture of what they think you want to do, they then ask
you some questions about the components, and they afford you the
opportunity to modify the properties of the objects.
Then they store all this info in tables and build code at
buildtime. The tables are rarely documented well and sometimes
have very confusing layouts. So you usually go back to the
IDE to make changes and if the changes are compilcated and there
are interconnected events to consider, you better know what you are
doing.

I consider it a nightmare of hiding code from the programmer.
The IDE is taking on the burden of a couple layers of abstraction
and the IDE ain't that smart.

You would be wise, if you choose Python to choose Tkinter or WxWindows
and learn the properties of a radio button and how to trigger events.
Writing simple GUIs is not that hard. Then after you know what is
going on behind the scenes, a BOA Constructor will not be as
mysterious or dangerous.
 
M

Max M

phil said:
You would be wise, if you choose Python to choose Tkinter or WxWindows
and learn the properties of a radio button and how to trigger events.
Writing simple GUIs is not that hard. Then after you know what is
going on behind the scenes, a BOA Constructor will not be as
mysterious or dangerous.

I agree. The language is more important than the gui. It is not very
hard to make good applikations in eg. Tkinter, and you will understand
evey part of it.


--

hilsen/regards Max M, Denmark

http://www.mxm.dk/
IT's Mad Science
 
T

Thomas Bartkus

phil said:
From 30 years of application development experience I will tell you
NOT HUMBLY, that Python is easily the most productive, the most
read-write and the most elegant of any of the above. Handsdown
better than Java, the runner up in that group.
Agreed!

Now let me explain somthing about "GUI buiders" or IDE's, from some
experience, Visual Studio being the worst.

The IDE takes a picture of what they think you want to do, they then ask
you some questions about the components, and they afford you the
opportunity to modify the properties of the objects.
Then they store all this info in tables and build code at
buildtime. The tables are rarely documented well and sometimes
have very confusing layouts. So you usually go back to the
IDE to make changes and if the changes are compilcated and there
are interconnected events to consider, you better know what you are
doing.

I consider it a nightmare of hiding code from the programmer.
The IDE is taking on the burden of a couple layers of abstraction
and the IDE ain't that smart.

"A nightmare of hiding code from the programmer" Hmmhh!

Well, it certainly does hide a lot of code!
More precisely, it removes the need for a lot of hand coding work that
should be automated.

Do I want to spend 95% of my coding/debugging efforts on a consistent user
interface or would I rather spend the bulk of my efforts on the business
problem that needs solving and just *have* an attractive and consistent user
interface.
You would be wise, if you choose Python to choose Tkinter or WxWindows
and learn the properties of a radio button and how to trigger events.
Writing simple GUIs is not that hard. Then after you know what is
going on behind the scenes, a BOA Constructor will not be as
mysterious or dangerous.

Writing simple user interfaces may not be hard but "simple" user interfaces
rarely serve well. More to the point is that programs are much better when
they have idiot proof (and idiot easy!) user interfaces where the programmer
hasn't the need to cope with the 1001 ways a user can louse up input or need
to write an encyclopeadia of documentation on how one interacts with his
particular program.

You are quite correct to point out how much better it is to know what is
going on behind the scenes. But heck, once you know how to extract square
roots - you need to let the computer do it!

GUI interfaces should be the same deal!
Thomas Bartkus
 
P

phil

You are quite correct to point out how much better it is to know what is
going on behind the scenes. But heck, once you know how to extract square
roots - you need to let the computer do it!

GUI interfaces should be the same deal!
Thomas Bartkus
I think I pretty much agree. I essentially code my own gui builder

but in text files.

I just think it is really important to emphasise the operative
"but once you know how" in your comments.

Then some would counter with "oh, so we should code everthing
in assembler?" Ouch. No, I will admit there is judgement
required. Everything should be done the easiest way, with the
qualification that you need to understand how using someone
else's shortcut leaves you vulnerable.

This guy is trying to get started and looking for our advice and
I saw most of the advice leaning towrd VB (aarrgh!) and I thought
I should give him other food for thought.

I'm going to take this opportunity for a short rant.
<rant>
I believe our society ( I'm an old fart) is drifting toward
a VERY small percentage of people knowing, caring or even
being curious about "how stuff works". I teach high school
geometry and am APPALLED at the apathy. I am concerned about
the future of this nation, economically, but spirtually as well.
So, this influences my advice. Know how your stuff works if
it is reasonable.
Tom Wolfe talked in a book about two kinds of kids.
Those that play video games and those that make video games,
and the numbers of the latter is shrinking.
</rant>
 
H

Harry George

phil said:
I think I pretty much agree. I essentially code my own gui builder

but in text files.

I just think it is really important to emphasise the operative
"but once you know how" in your comments.

Then some would counter with "oh, so we should code everthing
in assembler?" Ouch. No, I will admit there is judgement
required. Everything should be done the easiest way, with the
qualification that you need to understand how using someone
else's shortcut leaves you vulnerable.


I agree with your comments on Python and java and IDEs. I'd like to
expand on the "code in assy" complaint.

Compiled-to-assy-to-machine-to-execution is understood and
algorithmic. Any one person may no know it al,l but every step of the
way has been thought out and optimized by someone who knew what he/she
was doing. There are very few places where anyone has to dive down
into assy, much less microcode or VLSI layouts.

Therefore, we can trust the abstract model provided by the programming
language, and can stay in that model.

This is not the case for GUIs. We can't safely stay in the abstract
GUI IDE. In fact, most require you to dive into the generated code to
finish the task. Bouncing up and down the abstraction ladder is hard
and made harder by being forced to live in the IDE's idea of generated
code.

Given that, GUI IDEs are still helpful if your base langauge is a pain
to write and debug (e.g., C++, Java). But if your language is
actually easier to use than the GUI IDEs, then the equation shifts.
With Python, the clarity of thought and the opportunities for
higher-level programming (dynamic code genration et al) make GUI IDEs
just a waste of time or worse.

I also have moved to text-based inputs to my own GUI builders. Maybe
there is a sourceforge project waiting to be borne here :)

[snip]
 
X

xeys_00

Ok, sorry to throw perhaps unrelated stuff in here, but I want everyone
to know what we have right now in the office. We started with an
electric typewriter and file cabinets. We were given an old 386 with a
20 mb hard drive about 5 years ago, and we moved everything over to a
very very old version of msworks on msdos 6. Depending on what we are
given(for reasons best left alone, I won't explain why we can't
actually COUNT on the actual buying of a new system), we will be left
with this relic, or be given a 486. Maybe a old pentium 90 or so. I may
try to convince the boss that I can write dos programs for the existing
machine. If we get any kind of upgrade, I'm sure it will be able to run
linux with X and a low overhead window manager. If that happened, I'd
be able to use python and this "tk" thing you have talked about and
make something that will work for him, am I correct? The other
alternative is to install console mode linux on it and hope that the
ncurses library can be used by python. The system could be as low as a
486 dx2 66 with maybe 16 megs of ram. Well, I just thought I'd give you
people more info on the situation.

Xeys
 
P

phil

I may
try to convince the boss that I can write dos programs for the existing
machine. If we get any kind of upgrade, I'm sure it will be able to run
linux with X and a low overhead window manager. If that happened, I'd
be able to use python and this "tk" thing you have talked about and
make something that will work for him, am I correct? The other
alternative is to install console mode linux on it and hope that the
ncurses library can be used by python.


1. Python/Tkinter runs perfectly well on Win. don't need Linux.
In fact, easier to install on Win32 than Linux.
2. The hardware you describe would actually get much better performance
from Linux than Win, if you are confident in going to Linux.
3. Python/Tkinter OR Visual Basic may perform a little doggy but not
too bad -- The main thing is memory.
128mb works fine for moderm Linux or Win32 but not really fast.
4. I'm not aware of Python ncurses. Doesn't sound like fun.
I mean 2 hours of your pay buys 256MB memory. Unless you are
free, even then....
 
L

Lee Harr

make something that will work for him, am I correct? The other
alternative is to install console mode linux on it and hope that the
ncurses library can be used by python. The system could be as low as a
486 dx2 66 with maybe 16 megs of ram. Well, I just thought I'd give you
people more info on the situation.


That's almost exactly what I was given about 5 years ago.

The system I created uses a postgresql database and a
python/ncurses frontend.

Over the years, the system has become quite a bit more
complex and I have moved to pentium systems with as
much ram as I can scrounge up. They work quite well.

We get pentium machines for free all the time. People
are having a hard time getting rid of them. We use
them for my database app or as thin terminals in our
computer lab.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top