There were two parts to the OP's e-mail.

First, about his son learning to program. I believe that learning 3 languages from 3 different families gives one the best grounding in programming, since it helps the mind abstract programming principles. I note that people who posted here have quite a few languages under their belts.

Second, the OP was concerned that a future release of Windows would not support D6, and that he would have to port to another environment, such as XE or Lazarus. As people have pointed out, porting is usually a pain: even if the language stays the same, then some (or many) of the components are not supported. But it is still the case that porting takes way less time than writing from scratch, since at least the business rules and program structure will not change. And if you have no choice other than to change, you have to buckle down and do it.

Porting from one language to another can be even harder. Some tricky bugs can happen because of differences in language assumptions (e.g. port from Fortran to C and all your 1-based arrays are now 0-based arrays, and you have to change and test a lot of code [except there's a trick around that]). Or say port from C++ to Delphi; well, that was a lot of fun! :-)

But it's still a lot less work than rewriting from scratch.

Even my personal toolkit: if I suddenly had to port from C, Delphi, and Javascript to D, Lazarus, and Python, it would still take a lot less time than developing from scratch.

I would, however, likely have problems if I had to port my personal toolkit to say Haskell. Because the nature of functional languages is so different, that would probably require a full rewrite. A moot point, since I don't have anyone beating down my door to write Haskell code. :-)

As far as learning a new environment, agreed that being a guru in a new language/environment takes many months. However, IMHO being able to be "decent" and "productive" does not take more than a few weeks (or less depending on the language/environment). And if the incentive is high enough (e.g. can't do it any other way, or the client will pay megabucks for a Forth version), a few weeks in not that much time.

While it may be true that "the longer you stick to a certain language, the more efficient you will be", the flip side of that is that you could end up remaining an expert in something that is no longer popular, so you'll be competing for fewer and fewer available projects.

In the end, it all comes down to a cost/benefit analysis.


At 02:57 AM 7/9/2014, Irwin Scollar wrote:
Jerry Clancy wrote:

I agree with xiaorang My own programming days started 51 years ago with 1401 Assembler and FORTRAN, then a year later with 360 Assembler and PL/1 during the development of OS/360 in Poughkeepsie, the first major commercial operating system.

My programming experience is similar to Jerry's, starting a bit earlier in 1960 with an IBM 1410 and it's variable word-length Assembler and then Fortran II on a 36 bit IBM 7090, and later Fortran IV on a 32 bit 370/165. After a long happy interlude with my own DEC PDP 11/70 and RSX11M plus DEC Fortran, code was ported in the 1980's to Turbo Pascal on 286 PC's and DOS followed by Object Pascal and in the early 1990's to Windows 3, NT 3.5, NT 4, 2000, XP, Vista and Win 7 with Delphi through nearly all its incarnations right down to XE6 which I'm using today with Windows 7 x64. I test my executables with Win 8.1 for the few users who don't mind rubbing their fingers on small screens or haven't heard of Classic Shell, since that's the current laptop world. Tiny touch screens on mobiles are not for my satellite and aerial image work even for those whose eyesight is far better than mine is I think, so Fire Monkey is not installed..

In 54 years, I have learned that each port is an agonizing experience, especially if the hardware architecture and the operating system change significantly. In recent years, I have used crutches like writing a user interface in 32 bit Delphi and spawning 64 bit executables written in VS C++ when needed for memory intensive satellite imagery until Delphi XE2 became available. My current project, a clean switch to pure 64 bit code with XE6 for work with multi-GB sized images has meant abandoning most of the TurboPower suite because of the 32 bit incompatible in-line assembler (by Julian Bucknall? : Steve Posey? or ?) The JEDI JCL/JVCL libraries and the additional built-in string handling in XE6 help, but it's still a lot of work.

Like Jerry writes:

"... excepting trivial programs, the transition from one language environment to another is usually anything but quick, easy or straightforward."

I couldn't agree more.

Irwin Scollar
_______________________________________________
Delphi mailing list
[email protected]
http://lists.elists.org/cgi-bin/mailman/listinfo/delphi

_______________________________________________
Delphi mailing list
[email protected]
http://lists.elists.org/cgi-bin/mailman/listinfo/delphi

Reply via email to