berenger.mo...@neutralite.org wrote:
Le 16.10.2013 13:04, Jerry Stuckle a écrit :
Anybody who thinks that being able to write code (be it Java, C, or
.NET
crap), without knowing a lot about the environment their code is going
to run in, much less general analytic and design skills, is going to
have a very short-lived career.
Anyone who can't write good cross-platform code which doesn't depend
on specific hardware and software has already limited his career.
Anyone who can write good cross-platform code has a much greater
career ahead of him. It is much harder than writing platform-specific
code.
If writing portable code is harder than platform-specific code (which
is arguable nowadays), then, could it be because you have to take
about type's min/max values? To take care to be able to use
/home/foo/.bar, /home/foo/.config/bar, c:\users\foo\I\do\not\know\what
depending on the platform and what the system provides? Those are, of
course, only examples.
Absolutely harder, by a long shot - in some cases you can write to the
lowest-common-denominator of all platforms, and in some cases
cross-platform libraries can help, but in most cases "cross-platform"
means you have to include a lot of tests and special cases.
Consider several examples:
1. Simple HTML/JavaScript apps to run in browsers - it's practically
impossible to write stuff that will run the same in every browser -
different browsers support different subsets of HTML5, and beyond that
Explorer does things one way, Firefox another, Safari another, Chrome
another - and that's before you start talking desktop vs. mobile. Yes,
things like PhoneGap can hide a lot of that for you, but you still end
up needing to write a lot of tests and browser-specific accomondations
(and then test in every browser).
2. Anything that does graphics, particularly things that are graphics
intensive (like games). Different GPUs behave differently (though
OpenGL certainly hides a lot for you), and you still have to detect, if
not accomodate, systems that don't have a GPU.
3. Just look at all the tests and compile time options that get run by
make (or config) granted that automake generates a lot of that for you,
but still. Or for that matter, consider dependency checking when you to
an apt-get install - selecting libraries based on machine
characteristics (big-endian, little-endian for example). Writing a
program is more than just writing the C (or Java or Erlang or whatever)
- one then has to put together all the build-time stuff that goes with
it - and that has to know about and accomodate differences in build- and
run-time environments.
It can be awfully illuminating watching a verbose display of what
follows ./configure; ./make install - (Watching cpan
auto-assemble/install a perl-based application is similarly illuminating).
Miles Fidelman
--
In theory, there is no difference between theory and practice.
In practice, there is. .... Yogi Berra
--
To UNSUBSCRIBE, email to debian-user-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org
Archive: http://lists.debian.org/525ea5ef.8000...@meetinghouse.net