• TS (unregistered)

    No, sell the utilities to all your contacts on the user forums.

  • Bittle Tobby Lables (unregistered)

    A language like C, but even worse?

    Oh come on, no such beast exists. I call shenanigans.

  • Brian Boorman (google)

    I wonder what self respecting company would continue to buy this crap from this vendor. Probably the same company that thinks a made-for-the-hobbyist Arduino is something to build a product off of (hint: it's not).

    Bet ya a dollar the boss is her dad and the other employee was her sibling.

  • VeraLibera (unregistered) in reply to Bittle Tobby Lables

    I've seen poorly made, partially to-standard C implementations before, but I would like to know just which language they used for those screens out of morbid curiosity.

  • (nodebb) in reply to Bittle Tobby Lables

    The description of the language in the article sounds a lot like B, C's immediate predecessor.

    https://en.wikipedia.org/wiki/B_(programming_language)

  • (nodebb)

    Nothing wrong with minimal languages. With a DSL (Domain Specific Language) you put in just the absolute minimum features you need.

    Also there have been good industrial (not hobbyist) Arduino boards. I did quite a bit of work with "Arduino Industrial 101" (now a retired product).

  • (nodebb) in reply to Bittle Tobby Lables

    You don't believe there is a worse language than 'C'? You have led a sheltered life....

    Forth Fortran COBOL Lisp

  • Tim Ward (unregistered) in reply to Steve_The_Cynic

    I thought it sounded like BCPL. Everything is a word. So, a string is a word, and a function is a word. So you could write

    "Hello this is a string"()
    

    and it would jump the program counter to the string. The skill was in writing your machine code subroutine in the form if a string. In the days before Unicode.

  • Andre (unregistered)

    At least her boss is pretty decent here.

  • (nodebb)

    That language was called C--.

  • Darren (unregistered)

    These two lines in the story seem to be contradictory -

    "Alyssa first tried to control the screens using the manufacturer's own serial library. She couldn't get any of the system commands to work over serial"

    and

    "Alyssa recalled that sending serial commands directly had worked before"

  • Hal (unregistered) in reply to TS

    Oh hell no!

    I have seen this story before 100 times. The moment you do that you will:

    1. Be sued by the vendor more than likely
    2. Be expected to support it because people spent money on it. If you make a library or something 99% of the support cases you get will be turn out be after 3 hours of exchanges with the client they are feeding bad input..
    3. All these guys on the forum talk to each other, they have helped each other out in the past, they feel they owe each other favors, you will sell about four copies and everyone else with share/pirate it. You will get support requests of type (2) from the pirates too.
    4. Get endless stream of requests to add support for other hardware, updated hardware, and other radically out of scope stuff.

    Nope there is two ways to deal with this:

    1. Be nice and just publish it as FOSS. That way you can investigate the support requests that seem legit and interesting, ie the ones which may be real bugs. The community can handle most of the how-do-i?s You can abandon the requests that are not reproducible and accept the interesting pulls. Most likely the vendor wont sue because there is no money on the table. Maybe after some pulls you end up with better code/nice features adds yourself.

    2)Sell it to vendor, with a full hand off, they may be interested if it actually makes their product more marketable. This way either they deal with supporting it, you get paid and if they need further input from you - you get paid again.

  • (author) in reply to Brian Boorman

    At a guess, they were probably using an AT Mega chip or similar, and just calling it an Arduino. They probably used actual Arduino boards for prototyping, and then ran off their custom boards for actual product release (that's what we used to do at my old job).

  • Brian (unregistered) in reply to Bittle Tobby Lables

    You're just not thinking creatively enough. I worked with a guy who had his own custom library to basically slap a facade of PHP on what was otherwise C++. Oh, and he was the CTO and one of the founders, so the company's whole product was built atop this thing.

  • LCrawford (unregistered) in reply to Rick

    You don't believe there is a worse language than 'C'? You have led a sheltered life....

    Don't forget JavaScript

  • (nodebb) in reply to Rick

    I object. FORT AND COBOL is exelent on starved macines

  • D-Coder (unregistered) in reply to Bittle Tobby Lables

    A language like C, but even worse?

    Oh come on, no such beast exists. I call shenanigans.

    It's English, but it doesn't make any sense.

  • Дмитрий (unregistered)

    I would consider creating a cross-compiler from C to the almost C

  • Yikes (unregistered)

    Small batch, POS part, ..... I'm sensing a lot of false economy behind remaining loyal to the previous design choice.

  • JJ (unregistered) in reply to oscarCarserud
    Comment held for moderation.
  • (nodebb)

    One of our devices uses a SOC that has 16-bit bytes - TI's C2000 series. It's an old chip, and that was their trick to give you more flash ROM with one less address line. It makes things very 'interesting', and yes every character in a string is 16 bits. There ain't nothing smaller! However, the C for it is full featured and standard, and there are 32-bit ints and floats (or 64-bits if you really, really need it, but they're slow, entirely in software). So once you wrap your head around 16-bit bytes/chars it's actually not too different than usual. Incrementing a char* ptr still works as you'd expect. Just for sanity we explicitly type all our variables (Int16, Uint16, Int32, Uint32, Float32, etc) and never use 'byte', but you have to remember that 'char' is char16.

    ( As an aside, some people get very angry when I tell them this cpu has 16-bit bytes, because bytes are 8 bits BY DEFINITION YOU CHURL. You can tell the newbs. )

  • aj (unregistered) in reply to Oldtaku

    Frist igniting a flame war on byte size. You seem to confuse machine word (8 or 16 or 36 or whatever bits is used) and byte, that is, by current definition, exactly 8 bits. Unless you mean Baker's byte, that's 9 bits, cause you're such a good customer (xkcd/394)

  • (nodebb) in reply to aj

    Hi there, newb! A byte is almost always 8 bits these days, so it's a de-facto standard and you can certainly assume it, but a byte is whatever the smallest character size is / the increment of your address lines. We've had 4-bit bytes too. An octet is guaranteed 8 bits, which is why standards are very careful to say 'octet' if they really mean 8 bits. Back in the day, byte and word were often the same size, but then they diverged and a word is usually 32 or 64-bits these days.

    And on this CPU, a byte/char is 16 bits. Address 100 holds 16 bits, address 101 holds 16 different bits, etc. If you define char *foo = "foo"; it allocates 4 16-bit chars with the top octets wasted. Yes it's weird, so designers don't usually do this. TI just wanted to save an address line. Search 'Byte Accesses with the C28x CPU' for more info.

  • (nodebb)

    With everything-is-16-bits it could have been a [trigger warning] MSP430.

  • Worf (unregistered) in reply to Oldtaku
    Comment held for moderation.
  • (nodebb) in reply to Darren

    These two lines in the story seem to be contradictory - "Alyssa first tried to control the screens using the manufacturer's own serial library. She couldn't get any of the system commands to work over serial" "Alyssa recalled that sending serial commands directly had worked before"

    You're missing this bit at the end of the paragraph the first of those lines is in:

    and sure enough, Alyssa could send commands over serial, just not using the vendor's library.

  • (nodebb) in reply to Rick

    Forth Fortran COBOL Lisp

    Them's fighting words. Lisp is not worse than C. Also, for certain applications, neither is Forth.

    C++ is worse than C obviously and the clue is in the name. You add all those extra features to C but actually use the language from before incrementing it They should have called it ++C

  • (nodebb) in reply to aj

    According to the C standard "A byte is composed of a contiguous sequence of bits, the number of which is implementation defined."

    By far, the most common size is 8 bits, but as far as I can tell, no official standard exists. Some documents (e.g. for networking standards, which need to be independent of the machine architecture) specifically use the term "octet" to avoid ambiguity.

  • Yasin (unregistered)
    Comment held for moderation.
  • eric bloedow (unregistered)
    Comment held for moderation.

Leave a comment on “C, But Worse”

Log In or post as a guest

Replying to comment #:

« Return to Article