Le 18.10.2013 04:32, Miles Fidelman a écrit :
berenger.mo...@neutralite.org wrote:
So, what you name an OS is only drivers+kernel? If so, then ok.
But some people consider that it includes various other tools which
does not require hardware accesses. I spoke about graphical
applications, and you disagree. Matter of opinion, or maybe I did
not used the good ones, I do not know.
So, what about dpkg in debian? Is it a part of the OS? Is not it a
ring 3 program? As for tar or shell?
Boy do you like to raise issues that go into semantic grey areas
:-)
Not specially, but, to say that C has been made to build OSes only,
you then have to determine what is an OS to make the previous
statement useful. For that, I simply searched 3 different sources on
the web, and all of them said that simple applications are part of the
OS. Applications like file browsers and terminal emulators.
Without using the same words for the same concepts, we can never
understand the other :)
I'm pretty sure that C was NOT written to build operating systems -
though it's been used for that (notably Unix).
I never said I agreed that C was designed to build OS only. Having to
manage memory does not make, in my opinion, a language made to write
OSes.
I never took a look, but are linux or unix fully written in C? No piece
of asm? I would not bet too much on that.
It was simply to argue that, even if it was true, then it does not
avoid it to be good to write applications, since, in more than one
people's opinion, OSes includes applications.
I agree, it is part of programmer's job. But building a bad SQL
request is easy, and it can make an application unusable in real
conditions when it worked fine while programming and testing.
Sure, but writing bad code is pretty easy too :-)
I actually have less problems to write code that I can maintain when I
do not have to use SQL queries and stored procedures.
I simply hate their syntax. Of course, I am able to write some simple
code for sql-based DBs, but building and maintaining complex ones is not
as easy as building a complex C++ module. Or as an asm or C, or even
perl. Of course, it is only my own opinion.
I'd simply make the observation that most SQL queries are generated
on the fly, by code
It is not what I have seen, but I do not have enough experience to
consider what I have seen as the truth. But I will anyway allow myself a
comment here, if some people wants to create a new language: please,
please, please, do not do something like powerbuilder again! This crap
can mix pb and sql code in the same source file and recognize their
syntax. It will work. But will be horrible to maintain, so please, do
not do that! (this language have really hurt me... and not only because
of that)
But now, are most programmers paid by societies with hundreds of
programmers?
(and whether you actually mean "developer" vs. "programmer")
I do not see the difference between those words. Could you give me
the nuances please? I still have a lot to learn to understand English
for precise terms.
The terminology is pretty imprecise to begin with, and probably
varies by country and industry. The general pecking order, as I've
experienced it is (particularly in the US military and government
systems environments, as well as the telecom. industry):
Systems Engineer: Essentially chief engineer for a project.
(Alternate term: Systems Architect)
- responsible for the big picture
- translate from requirements to concept-of-operations and systems
architecture
- hardware/software tradeoffs and other major technical decisions
Hardware Engineers (typically Electrical Engineers): Design and build
hardware (including computers, but also comms. networks, interfaces,
etc.)
Software Engineers: Engineers responsible for designing and building
software. Expected to have a serious engineering degree (sometimes
an
EE, often a Computer Science or Computer Engineering degree) and
experience. Expected to solve hard problems, design algorithms, and
so forth. Also have specific training in the discipline of software
engineering. People who's resume says "software engineer" have
typically worked on a range of applications - the discipline is about
problem solving with computers.
Developer: Vague term, generally applied to people who do the same
kinds of work as software engineers. But doesn't carry the
connotation of an EE or CS degree. Tends to be commonly used in
product development environments. In my experience, a lot of
developers start out writing code in their own field of expertise
(doctors writing medical applications, musicians writing music
software, and so forth). People with "developer" on their resume
often have specialties associated with the term - e.g., "game
developer" - emphasizing an area of specialization.
Programmer: A term I've never actually understood. Basic use seems
to be "someone who knows how to program" or "someone who programs for
living." But.... I've personally never seen anyone hired purely as a
"programmer." (I've hired, and seen hired, a lot of developers and
software engineers, but never a pure programmer.) As far as I can
tell, the term is a carryover from the early days of large systems -
where "systems analysts" figure out what a system was supposed to do
(i.e., did the engineering) and then directed programmers to write
code. (Akin to the relationship between a hardware engineer giving a
design to a technician, who would then build a prototype.)
Coder (or "code monkey"): A somewhat pejorative term for an unskilled
programmer - someone who might have taken a couple of "introduction
to
programming" courses and now thinks he/she can write code.
For what it's worth - my observation is that the demand is for
software engineers and developers (i.e., skilled people who can solve
real problems). But... computer science curricula, at least in a lot
of schools, seems to be dumbing down -- a lot of places look more
like
programming trade schools than serious engineering programs. Not a
good thing at all.
It seem you attach a lot of importance to schools ( that what I
understand in "computer science curricula" ) but I wonder: how do you
consider people who learned themselves, before even learning a craft at
school ( that's what wikipedia says when I start from the French
"métier" and then switch on English language. I understand that it seems
to be reserved for physical products in English, but, I like that
notion: "A craft is a pastime or a profession that requires some
particular kind of skilled work." which makes things different from a
simple job. ) ?
Would you name them coder, programmer, developer? Something else? Do
you consider they are always less efficient that people with high
degrees?
And, again, just a guess, but I'm guessing the huge percentage of
programmers these days are writing .NET code on vanilla Windows
machines (not that I like it, but it does seem to be a fact of
life).
A lot of people also seem to be writing stored SQL procedures to
run
on MS SQL.
Windows actually provides a stable environment, very good
programming tools ( visual studio is a really good IDE ), and when you
write for it, you know that most computers will be able to run your
program.
Well sure - but, by definition, it's not cross platform, and I sure
wouldn't write server-side stuff to run on Windows (though many do,
including my current major client).
If one day, I can work on something else than on windows, I could
accept lot of sacrifices for that. And I am probably much more efficient
outside of windows world, or to be exact, in writing portable stuff,
than on writing stuff for one OS only.
But, the truth is, while MS Windows will be running on more than 70% of
computers, we will have to write and maintain for it and it will be used
for servers, too, because it is easier to do so when there are less
targets.
Same for applications written in multiple languages: the less languages
you use in a software, the easier it will be to maintain, and so, the
cheaper.
On the other hand, portable softwares forces to have better design,
because you really need to separate the layers, which in turns helps to
find and fix bugs faster, imo.
I probably wouldn't write a telecom. switch control program to run
under Windows, for example - and I expect visual studio wouldn't help
a lot in writing Erlang code (though I'm not sure there's a good IDE
for Erlang).
In my last job, most of computers and servers were running windows. I
think there were some centOS servers, but unfortunately the internal
softwares were written in powerbuilder, with work to rewrite them in
C#/.NET.
I can remember the pains of making powerbuilder able to access a webcam
( through C++ and a poorly documented API ). If you think there is no
good IDE for Erlang, then, try to use PowerBuilder's own IDE to write
PowerBuilder code. You will change your mind, and even the simplest text
editors (yes, including the ones without syntax coloration) with a
simple file browser will seems like paradise then. At least, those ones
will be stable.
Arguably, it is also easy to install stuff on windows.
I strongly disagree with that for most current linux-based OS, but I
remember my first installs of Debian. I was used to consoles, but I
had no knowledge of what tools I had to do anything, and no graphical
interface to learn basics from the Internet. Debian without Internet
was not usable for beginners at that time (installer provided
woody/potato at that time IIRC. I had my first successful use of
Debian with Etch... or was it Lenny? I only know that I know all those
version names for a reason or another, don't remember completely). So,
that linux-based reputation is not stolen, and since it is not used a
lot, it has not been reduced unlike the windows' one to be unstable
and full of security holes. And when people asks me what I am running
with, I have to reply it is a Debian, and insist on the fact I have
heavily customized it to avoid frightening them.
Those are probably the reasons why people programs with Microsoft's
"closed" technologies. But now, MS can argue that .NET is available on
linux too, and that SQL is standard ( but not procedures which are an
important part, of course ).
We can just hope that windows usage will continue to very, very
slowly regress to have more portable softwares.
Are you saying it's NOT easy to install stuff on Windows?
Compared to other things I know, aka, deb packaging system, yes.
Considering you already have the archive binary, on windows you will
have to read lot of screens, or you will destroy your system in less
than 1 year, if you often add and removes applications, because when you
remove something which installed crap on your computer, it won't remove
it.
Sometimes, on Debian, I have to compile stuff myself... but it is the
same for windows.
And, finally, to install and configure programming related stuff, like
development libraries, on Debian you simply install them. They are
installed in correct places so it is automatically detected by tools
which needs them.
On Windows, when you will have finally installed it, you will have to
take care where you did, because you will need that information later,
and all softwares have their own preferences. Not to speak about the
fact that they usually install in "c:\program files\<company
name>\<software name>\". The company name is sometimes editor's one, or
developer's one. Random.
Installing stuff on windows is only easy when you only know windows in
modern OSes (this is to discard ms-dos ;) ).
Oh, and I did not mention that, on windows, installing a software which
depends on another software will need you to install manually that other
one. Which is why softwares often (but not always, I had lot of errors
claiming that something was missing) includes most (but not always all)
dependencies.
So, yes, generally, installing stuff on Windows is hard, compared to
the only other modern system I know: Debian.
Oh, and, I do not use any DE ( even file browsers lacks on my
computers, they are too slow against terminal emulators ), so, yes, I
need the console to install stuff. I can not be considered as a normal
end-user, it's obvious.
But, at least for Ubuntu, there are means to install a software
directly by clicking a link on your favorite web browser (I noticed that
on few websites). I guess that this technique uses xdg-open in
background, and if I am not wrong, it would mean that file browsers are
also able to do so. As for exe and msi on windows.
--
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/ec945df8af9804bf002e57b9423e5...@neutralite.org