I read that you want a win desktop application, as opposed
to a device driver, for instance. I am guessing that code efficiency is
lower down on the list than coding time. So I see it as a
matter of balancing how quickly you want that desktop app written, versus how
much ooh and aah you want for jumping right into C/C++.
What if you:
1. write your desktop app in visual basic.
This may take you >5 times less time to write, based on
my own VB vs. C++ learning experiences. I know it's
something like "minus 2,322 geek cred points" for admitting you wrote
something in visual basic. But in exchange, you get your app out and
tested and improved and the end product will be better 6 months from
now.
2. start learning C/C++ on the side, by working
on porting that app. First port the parts of the app which could
use optimization.
3.
along with learning coding in the next 10 years, keep up on
improvements automated code optimizers, emulators, and porting
tools. To me, using these tools means that I can get the
job done more quickly without necessarily going through the programming learning
curve that I'd have needed 10 years ago.
Personally, I'd learn C and then C++ and then Objective C. The basics
of C applies to both C++ and Objective C. Its good for embedded stuff and
standard computer platforms.
Java is appealing from its cross platform
ability, but with Oracle at the helm, I've heard grumblings that it may be going
nowhere quickly... I can't recall the source of that so take it with a grain of
salt.
Eric Cope
On Wed, Mar 23, 2011 at 12:40 AM, Nathan England
<nathan@paysonlinux.org>
wrote:
Wow,
such a windows question, and written to a linux group!
Dare I bring up Qt and KDE ? I realize neither is a language, but with
the future of Qt and KDE looking to scale to mobile devices, it only makes
sense to plan future applications to be written with C++ using the incredibly
impressive Qt and KDE frameworks. Both or individually. They rock. Extremely
powerful, and scale very well.
Nathan
On Tue, Mar 22, 2011 at 10:15 PM, Joseph Sinclair
<plug-discussion@stcaz.net> wrote:
Lots
here, Hopefully this will help.
1) Windows is a terrible bet.
It's already having trouble in the market on multiple fronts; it
doesn't scale up to servers (well), it doesn't scale down to mobile devices,
and it won't likely work well with the transition to ARM architectures and a
more diverse hardware ecosystem.
2) Apple will never dominate anything
(in computing devices) for long. They're too tied to the
closed-control-everything walled-garden approach, and most people don't
really want a device that's completely closed (witness the surprising
popularity of jailbreaking iPhones) outside of simple single-purpose
consumer-electronics devices (like an MP3 player, and even there Apple is
less dominant than they'd like you to believe).
3) Don't choose a single
language and expect to use that for 10 years; it's extremely unlikely any
given language or platform will hold sway that long.
4) Apple IOS *is*
OSX on phones. It's the only "version" of OSX that will ever run on a
phone.
That said:
Java is a great platform to learn, particularly
for mobile; consider building an Android app to learn with (Android apps are
Java with some slight modifications and extra API's). The Android SDK
runs in Linux and provides an actual system emulator so if your app runs in
emulation it will almost certainly run on real devices (unless you do
something really weird).
If you also want to try some web development
look at building a straight-up servlet app with Tomcat6 (avoid Spring and
J2EE; the first has jumped the shark and the second is very complex).
Servlet programming is relatively easy to learn, and it's immensely
powerful. Almost all examples of JSP programming follow the broken ASP
model, which is almost the worst possible way to architect a web
application. You might also look at the Google Web Toolkit, which
allows you to use Java to develop the AJAX frontend as well.
C and
C++ are strong languages, but not terribly well suited to mobile apps unless
you have a lot of experience and need the absolute maximum performance on a
phone. If you are interested in those languages learn the QT toolkit as
well, as that will help you create C++ applications that are cross-platform
without a lot of *very* difficult work. Understand that it's generally
expected that everything you write for the first 5-10 years using C++ will
be horrible, just because C++ is more complex and powerful than generally
recognized.
It might be useful to look into Python, Scala, and
Javascript as additional options for a, currently in-demand, strong niche
language that will buy time to build a broader skillset.
If you
really want to develop for iPhone, then buy a Mac desktop or laptop and
develop using Objective-C, since that's more-or-less required to develop a
native iPhone app.
For most cases, the best place to develop a new
desktop application is Linux; develop using Java, C++ with QT, or Python
with wxWidgets and you'll be able to run it on Windows and Mac as well, but
developing on Linux will encourage cleaner code and provide a smoother
software development process.
Good luck,
Joseph Sinclair
On 03/22/2011 09:36 PM, keith smith wrote:
>
>
>
Hi,
>
>
>
> I would like to build a desktop
>
application to run in Windows. And I am looking to the future...
10
> years, if that is possible.
>
>
>
> With
mobile computing (smart phones)
> starting to emerge, and a possible
future dominance by Apple devices,
> I would like to try to prep for
that too.
>
>
>
> 25 years ago I learned dBaseII
and
> liked it. For that time is was very feature rich and very
powerful.
> Then I followed with dBase+, III+, FoxBase+, FoxPro DOS
and Windows,
> and finally Visual Foxpro. Really enjoyed that 13
year run. M$
> bought VFP and now it is almost
dead.
>
>
>
> I moved to Perl for a short time,
ASP
> for a short time, and then PHP, where I am
now.
>
>
>
> Looking back I can say I learned
one
> major lesson - be careful what sills you build and
maintain.
>
>
>
> So I am needing to learn a new
skill to
> create this simple Windows Application. I was
thinking of C++
> because no matter where the market goes C will more
than likely be
> useful on Windows, MAC, and
Linux.
>
>
>
>
> Then there is Java. The
write once run
> everywhere language. Nice thing about Java is I
can build web apps
> with it as well. As phones become smarter,
I suspect there will be
> some real need there also. Then I also
hear the rumor of OSX running
> on phones.
Nice!
>
>
>
> So when the day is done and gone
I do
> not want to spend a bunch of time learning a new language and
the
> development tools that go along with it and find I wasted my
time.
>
>
>
> Any
Suggestions?
>
>
>
> Thanks in
advance!
>
>
>
>
>
>
>
------------------------
>
> Keith
Smith
>
>
>
> 2 Chronicles 7:14 (New International)
: if my people, who are called by my name, will humble themselves and pray
and seek my face and turn from their wicked ways, then I will hear from
heaven, and I will forgive their sin and will heal their
land.
>
>
>
>
>
>
>
---------------------------------------------------
> PLUG-discuss
mailing list - PLUG-discuss@lists.plug.phoenix.az.us
> To
subscribe, unsubscribe, or to change your mail settings:
> http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss
---------------------------------------------------
PLUG-discuss
mailing list - PLUG-discuss@lists.plug.phoenix.az.us
To subscribe,
unsubscribe, or to change your mail settings:
http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss
--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Nathan England
I
believe in the Constitution and the 4th Amendment. I am innocent and have
nothing to hide, but NO agent of the state crosses my threshhold without a
valid warrant signed by a judge and properly submitted. If we fail to exercise
our rights, we lose
them.
---------------------------------------------------
PLUG-discuss
mailing list - PLUG-discuss@lists.plug.phoenix.az.us
To
subscribe, unsubscribe, or to change your mail settings:
http://lists.PLUG.phoenix.az.us/mailman/listinfo/plug-discuss