only anecdotal .... not a proof of a trend ...

Hello, I received two job postings ... my comments follows the postings: ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- *#1 Software Developer* * * Location: Austin, TX Duration: 6 months Rate : $60/hr -$70/hr on w2 *Required:* *- Straight C experience - Generally need a pure C programmer to ideally create 1 C file that can be compiled in Win32/Win64/Dos/Shell/Linux* a. Prefer C, not C++, but if only C++ still consider it. b. Past contractors tried to do too large of things like templates, huge class structures, etc. so we prefer C over C++ c. Upper level Windows programming such as .NET detracts because client wants them to think about all targets, not just Windows *- Linux experience – Generally need to get a Windows GUI application to be re-compiled and run in Linux* a. Hard to find, so first do a key word search of Linux b. Programming applications background is a big plus c. Looking for GUI experience so they can scope how the Win32 app looks then implement the same experience in Linux d. Client is lacking in Linux background, so need someone that needs minimal help with Linux. *Desired:* - Application development – Have several Win32 applications that need to be compiled as Win64 then tested a. Experience in testing and familiar with looking for corner case scenarios - Low level hardware/software interaction knowledge a. Apps require running a SMI to initiate contact, need candidate to understand difference between virtual and flat addressing ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- *#2 SMTP EMAIL SERVER - C* Elance - United States See original job posting at Elance »http://www.indeed.com/rc/clk?jk=6f0fdd27079eb247&from=vj&grandfrom=ja&tk=1687hjc6n069g1ia Developer to provide ANSI C software to send (receive not required) email using an SMTP Server. This software must support: ? AUTH_LOGIN (base 64 encoding) ? NTLM ? NTLM2 ? CRAM MD5 This software is targeted to run on an embedded microcontroller but can be developed in Linux or Windows. The following requirements MUST be met: ? No C++, No C++ Classes...etc ? No .NET ? No DLLs ? No Libraries ? No OS dependencies (Windows/QNX/MQX or any other OS) ? No OS Function Calls ? 100% ANSI C Source is required. Desired Skills: C ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Both seem to want to have nothing with C++ (dare I say OOPS?). I work in mainstream industry. Have others on the mail list seen such job postings recently? Is there now a trend against C++ due to somewhat loose type checking and very statefullness? (Unlike Haskell which splits pure and monads very clearly vis strong types). #1 To C++ templates are much more bulky(and ugly) compared Haskell's polymorphic types. However, it caused me to think where we Haskell programmers can do "too large of things". ??? Perhaps an unfair question given that I have no access to the current C++ code. #2
From the context of #2, I can tell the author didn't mean all of the "?"'s but instead maybe "!".
The OS QNX is a hard real-time OS that uses a message passing IPC. I have worked QNX and have written a device driver for QNX. This job posting maybe very unfair argument against C++/OOPs as maybe the thought is that C++ adds to much "non-determinism" to a hard real-time problem. In the real-time extension to the POSIX API is a function "mlock" which locks a process into memory(no swapping) which seriously helps to cut down on non-determinism. Here Haskell would be worse with its garbage collector with its attending non-determinism. No "OS function calls" seems way over the top. Sorry for my meandering thinking .... Regards, Vasili

On Sun, Aug 28, 2011 at 21:27, Vasili I. Galchin
From the context of #2, I can tell the author didn't mean all of the "?"'s but instead maybe "!".
More likely — or • and they got remapped to ?s by incorrect encodings.
The OS QNX is a hard real-time OS that uses a message passing IPC. I have worked QNX and have written a device driver for QNX. (...)
attending non-determinism. No "OS function calls" seems way over the top.
It's not over the top; it's traditional embedded device programming, where there isn't an OS available, just a simple BIOS (and I don't mean the MS-DOS one). I suppose kids these days expect even embedded environments to be fairly high end CPUs with full memory management and full OSes... nope. There's even still ladder logic out there — and at least one recent Haskell package aimed at programming for it. -- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms

Hi Brandon,
1) The reason I said "over the top" is that QNX is highly optimized to
bound kernel pathways. I was able to read kernel code. I have also worked on
LynxOS and pSOS. Not dissing you [?]
2) What is the Haskell package that you are alluding to. I would like
to know plus probably others on this list.
Kind regards,
Vasili
On Sun, Aug 28, 2011 at 9:27 PM, Brandon Allbery
On Sun, Aug 28, 2011 at 21:27, Vasili I. Galchin
wrote: From the context of #2, I can tell the author didn't mean all of the "?"'s but instead maybe "!".
More likely — or • and they got remapped to ?s by incorrect encodings.
The OS QNX is a hard real-time OS that uses a message passing IPC. I have worked QNX and have written a device driver for QNX. (...)
attending non-determinism. No "OS function calls" seems way over the top.
It's not over the top; it's traditional embedded device programming, where there isn't an OS available, just a simple BIOS (and I don't mean the MS-DOS one). I suppose kids these days expect even embedded environments to be fairly high end CPUs with full memory management and full OSes... nope. There's even still ladder logic out there — and at least one recent Haskell package aimed at programming for it.
-- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms

On Sun, Aug 28, 2011 at 22:33, Vasili I. Galchin
1) The reason I said "over the top" is that QNX is highly optimized to bound kernel pathways. I was able to read kernel code. I have also worked on LynxOS and pSOS. Not dissing you [?]
Sure, there are plenty of RTOSes out there. There were back then, too; there are still times when simpler environments are preferred (admittedly, some of them are more psychological than justifiable by the intended usage). I still think "over the top" is itself a bit over the top; we are far from being able to replace the immense number of traditional PLCs or embedded devices out there which nevertheless need to be retrofitted in software to support newer technologies. (See below; you have about 0% chance of getting someone to rip out all the existing PLCs on every segment of every track in the country and replace it with a computer running QNX or VXWorks. Even ignoring the [mostly labor, but with the number of devices in question even the hardware adds up] cost, consider the logistics; the segments that need it most are the ones you can't afford to take offline for any significant amount of time while refitting and testing the new gear.) Now imagine that someone has a large deployed base of simple dedicated embedded hardware and needs to retrofit SMTP into it. That's a software-only change, and waving a manual while intoning "QNX" won't get you anywhere with the hardware.
2) What is the Haskell package that you are alluding to. I would like to know plus probably others on this list.
Hm, I'm not sure it hit Hackage; I'm not seeing anything obvious there aside from vaguely recalling some changes to Atom to make it more suitable for code generation for PLCs. You might, however, take a look at http://cs.swan.ac.uk/~cspj/docs/calco.pdf which uses Haskell SAT solvers to validate PLC ladder logic for track safety; I don't know how much of the rest of the system is in Haskell. -- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms

My bad .... I misread the QNX part. I thought they wanted to use QNX. Sorry.
At one company I did a contract at, they use pSOS with a large code base ...
so you are correct .. they won't change to QNX even though there is no new
development in pSOS.
Vasili
On Sun, Aug 28, 2011 at 10:04 PM, Brandon Allbery
On Sun, Aug 28, 2011 at 22:33, Vasili I. Galchin
wrote: 1) The reason I said "over the top" is that QNX is highly optimized to bound kernel pathways. I was able to read kernel code. I have also worked on LynxOS and pSOS. Not dissing you [?]
Sure, there are plenty of RTOSes out there. There were back then, too; there are still times when simpler environments are preferred (admittedly, some of them are more psychological than justifiable by the intended usage). I still think "over the top" is itself a bit over the top; we are far from being able to replace the immense number of traditional PLCs or embedded devices out there which nevertheless need to be retrofitted in software to support newer technologies. (See below; you have about 0% chance of getting someone to rip out all the existing PLCs on every segment of every track in the country and replace it with a computer running QNX or VXWorks. Even ignoring the [mostly labor, but with the number of devices in question even the hardware adds up] cost, consider the logistics; the segments that need it most are the ones you can't afford to take offline for any significant amount of time while refitting and testing the new gear.)
Now imagine that someone has a large deployed base of simple dedicated embedded hardware and needs to retrofit SMTP into it. That's a software-only change, and waving a manual while intoning "QNX" won't get you anywhere with the hardware.
2) What is the Haskell package that you are alluding to. I would like to know plus probably others on this list.
Hm, I'm not sure it hit Hackage; I'm not seeing anything obvious there aside from vaguely recalling some changes to Atom to make it more suitable for code generation for PLCs. You might, however, take a look at http://cs.swan.ac.uk/~cspj/docs/calco.pdf which uses Haskell SAT solvers to validate PLC ladder logic for track safety; I don't know how much of the rest of the system is in Haskell.
-- brandon s allbery allbery.b@gmail.com wandering unix systems administrator (available) (412) 475-9364 vm/sms
participants (2)
-
Brandon Allbery
-
Vasili I. Galchin