Slashdot Mirror


It's Time To Revive Hypercard

HughPickens.com writes HyperCard, an application program and programming tool released for the Apple Macintosh in 1987, represented the 'computing for the people' philosophy that enabled users to go past the pre-built software that came on their machines, and to program and build software of their own. "Mac users could use Hypercard to build their own mini-programs to balance their taxes, manage sports statistics, make music – all kinds of individualized software that would be useful (or fun) for individual users." Now Jer Thorp writes that the end of HyperCard left a huge gap that desperately needs to be filled – a space for an easy to use, intuitive tool that will once again let average computer users make their own tools. According to Throp, this type of plain-language programming makes sense, particularly in an application that was designed specifically for non-programmers. "I find the largest concern for learners to be not with the conceptual hurdles involved in writing a program, but with obscure and confusing syntax requirements. I would love to be able to teach HyperTalk to my students, as a smooth on-road to more complex languages like JavaScript, Java or C++." By putting the tools of creation into the hands of the broader userbase, we would allow for the creation of ultra-specific personalized apps that, aside from a few exceptions, don't exist today."

HyperTalk wasn't just easy, it was also fairly powerful. Complex object structures could be built to handle complicated tasks, and the base language could be expanded by a variety of available external commands and functions (XCMDs and XFCNs, respectively), which were precursors to the modern plug-in. But ultimately, HyperCard would disappear from Mac computers by the mid-nineties, eclipsed by web browsers and other applications which it had itself inspired. The last copy of HyperCard was sold by Apple in 2004. "One thing that's changed in the intervening decades is that the hobbyist has largely gone by the wayside. Now you're either a user or a full-fledged developer, and the gulf is wider than ever," writes Peter Cohen. "There's really nothing like it today, and I think the Mac is lesser for it."

192 of 299 comments (clear)

  1. For the rest of us by Gonoff · · Score: 4, Interesting

    The majority of us did not have money to spare for Macs. I have no doubt that they were the best personal computers around. I used them.

    For less expensive computers, there was the BASIC interpreter. Not as WYSIWYG or simple and Beginners need to think when coding, even at that level. It also had the advantage of being close to a standard untill MS teurned it into QBasic then dumped it.

    BASIC is what we need again but standardised and improved a lot.

    --
    I'll see your Constitution and raise you a Queen.
    1. Re:For the rest of us by Anonymous Coward · · Score: 3, Insightful

      Apple did a good job of blasting macintoshes into classrooms. i couldnt afford any computer as a kid. i was poor. but the precious times at school on the computers there shifted my skillset and made it great. i did years late to the party, scrape together money for an apple IIc. basic was my first coding language, hypercard came a bit later but it was a nice easy to use tool. I think we should bring it (or something like it) back, for all platforms. an OSS hypercardish thing for sure.

    2. Re:For the rest of us by ArcadeMan · · Score: 3, Funny

      So, Hypercard is like Festivus?

    3. Re:For the rest of us by mcgrew · · Score: 1

      Even if Macs weren't so expensive, something cross-platform, like BASIC, would be better. I learned BASIC on a TS-1000, and after BASIC, learning assembly wasn't that hard; I was hand-assembling machine code for that TS-1000. I had to since BASIC on a 1 mHz Z-80 that powered the entire machine was just too slow for games.

      Oddly, the company that brought BASIC to most was Microsoft; they didn't write Sinclair BASIC but they wrote the BASIC for most other computers of the time. GW BASIC on the IBM PC was still good. They have a bad habit of taking an okay or even excellent program like BASIC, FoxPro, or Windows 7 and trashing it completely.

      Visual Basic is a convoluted joke.

      And you hit the nail on the head with syntax. Shit like curly braces are IMO incredibly counterproductive and stupid.

    4. Re:For the rest of us by hairyfeet · · Score: 4, Interesting

      I'll get hate by the "programmers" but I'd argue that what we need is more along the lines of another VB 6 which is what TFA seems to be advocating. The "programmers" can scream all they want but VB with Access did one job and did it VERY well which was allowing anybody to build single function programs quickly and easily. VB code was very human readable, with an "if this then that" kind of structure that most can grasp without effort and with an Access DB being so butt simple to hook up it was insanely easy to develop programs that could input, store, and manipulate data which I've found those that actually need to make tools as opposed to COTS is job #1.

      With VB 6 plus Access one can whip off a program in a few hours to do anything from store and retrieve a customer's order history to a CD/DVD catalog program to a program I banged out in a weekend several years ago for a junkyard which allows them to keep up with what cars are on their property and what condition they are in. Last I heard they are still using that and I really can't blame 'em, I still use a VB 6 plus Access program for DVD cataloging as its insanely fast (much faster than a similar program using XML), runs on pretty much anything, and is low on resources, all of which I'd argue you really need in a programming language for laypeople who have no idea about code optimization.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    5. Re:For the rest of us by Flytrap · · Score: 3, Insightful

      Why couldn't a new incarnation of something like Hypercard be cross platform.

      I am not familiar with Hypercard (my entry into programming was via Basic first on the ZX Spectrum and later on the Apple IIe), but I would argue that if is was as great at easing lay peoples entry into programming as some claim, then we should rather exert more effort in making a new incarnation of Hypercard that is cross platform, rather than in trying to convince people that second best is better because it is cross platform.

    6. Re:For the rest of us by Ol+Olsoc · · Score: 1

      Even if Macs weren't so expensive, something cross-platform, like BASIC, would be better.

      I almost agree. But it's an Apple to oranges comparison. Basic is responsible for turning a lot of us into programmers, and I believe that it should be included with all operating systems.

      But Hypercard is in a whole different league with it's capabilities. The closest thing I can come up with is a comparison between say, Filemkaer Pro and Excel. When I try to explain Filemaker pro to people, most tend to get badly stuck in excel-land. I had one guy who worked with excel spreadsheets for many years who never could grasp relational databases like FMP.

      --
      The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
    7. Re:For the rest of us by JohnStock · · Score: 2

      I'd say the Commodore Amiga was the best personal computer. Ahead of Macs

    8. Re:For the rest of us by ColdWetDog · · Score: 4, Funny

      Now that you are on your way up the financial ladder, perhaps you could spring for a caps lock key on your current machine.

      --
      Faster! Faster! Faster would be better!
    9. Re:For the rest of us by ColdWetDog · · Score: 2

      If you think VB6 is human readable, then we need to have a little conversation about species differentiation.

      --
      Faster! Faster! Faster would be better!
    10. Re:For the rest of us by Insanity+Defense · · Score: 1

      The majority of us did not have money to spare for Macs. I have no doubt that they were the best personal computers around. I used them.

      For less expensive computers, there was the BASIC interpreter. Not as WYSIWYG or simple and Beginners need to think when coding, even at that level. It also had the advantage of being close to a standard untill MS teurned it into QBasic then dumped it.

      BASIC is what we need again but standardised and improved a lot.

      http://freebasic.net/

      Official Website

      FreeBASIC is a free/open source (GPL), BASIC compiler for Microsoft Windows, DOS and Linux.

      When used in its "QB" language mode, FreeBASIC provides a high level of support for programs written for QuickBASIC. Many programs written for QuickBASIC will compile and run in this mode with no changes needed. However, for compilation in the FreeBASIC default language mode, most substantial programs will require changes.

      FreeBASIC is a self-hosting compiler which makes use of the GNU binutils programming tools as backends and can produce console, graphical/GUI executables, dynamic and static libraries. FreeBASIC fully supports the use of C libraries and has partial C++ library support. This lets programmers use and create libraries for C and many other languages. It supports a C style preprocessor, capable of multiline macros, conditional compiling and file inclusion.

      FreeBASIC has been rated close in speed with mainstream tools, such as GCC.

    11. Re:For the rest of us by lgw · · Score: 2

      The current Visual Basic is no harder to learn than the old VB6. It's different in some ways, which was jarring to anyone who knew VB6 (one of MS's stupider moves), but it's not worse. And VB.Net has the advantage that switching from it to C# is much easier than switching from VB to C++ was.

      But I admit I have no idea what the new DB interface stuff is like (or the old) - the free version of VS comes with a free version of MS SQL, right? Anyone ever tried using that from VB.NET?

      --
      Socialism: a lie told by totalitarians and believed by fools.
    12. Re:For the rest of us by 50000BTU_barbecue · · Score: 2
      --
      Mostly random stuff.
    13. Re:For the rest of us by lgw · · Score: 1

      Python's a bit of a mess if you've never programmed before. Admittedly, I don't know much about 3.x, but Python has a very "evolved" feel, with a lot of inconsistencies and evident history of changes to the language, plus classes are such a hack.

      Maybe that's all smoothed out in 3.x? Does Python look like it was designed on purpose now?

      --
      Socialism: a lie told by totalitarians and believed by fools.
    14. Re:For the rest of us by lgw · · Score: 4, Informative

      I'm amazed everyone has forgotten Myst. Myst was a HyperCard stack with QuickTime movies - and amazing demonstration of with you could do with it.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    15. Re:For the rest of us by nabsltd · · Score: 1

      Even if Macs weren't so expensive, something cross-platform, like BASIC, would be better.

      What made Hypercard so great is that it allowed you to build a fairly decent GUI with almost no work.

      Although I agree that cross-platform is the way to go, without the ability to "draw" your windows and dialog boxes, it would be just like the original BASIC, where pretty much only geeks used it.

      Visual Basic is a convoluted joke.

      And yet, it's much closer to what a modern Hypercard should be like than most other dev environments.

    16. Re:For the rest of us by alienmole · · Score: 4, Funny

      THAT SEEMS LIKE A GOOD IDEA. I'M VERY HAPPY WITH MY NEW CAPS LOCK KEY. OH WAIT, DID YOU MEAN A SHIFT KEY?

      the one problem with using my new caps lock key is that the slashdot filter complains that it's like yelling and refuses to post my comment. maybe these sentences will mollify it. haha it worked.

    17. Re:For the rest of us by jbolden · · Score: 4, Informative

      The article is completely wrong. The current version of Hypercard (RunRev's LiveCode) is cross platform: iOS, Android, BlackBerry, Windows Phone, Windows Desktop, Linux Desktop, Mac.

    18. Re:For the rest of us by Anonymous Coward · · Score: 1

      Caps key is a toggle. While it may not be as efficient as the shift key modifier for capping specific characters you may use it like a shift key with two presses for every one cap you would like to write.

    19. Re:For the rest of us by Lije+Baley · · Score: 1

      More like VB 5, but with updated functionality and examples in the integrated help which actually work. From what I remember, VB 6 was a step backwards in ease of use.

      --
      Strange things are afoot at the Circle-K.
    20. Re:For the rest of us by phantomfive · · Score: 1

      I'll get hate by the "programmers" but I'd argue that what we need is more along the lines of another VB 6 which is what TFA seems to be advocating.

      How about instead of reviving old trash, building a language that has the advantages of VB without the disadvantages? It was so hard to write a good, stable application in VB.

      --
      "First they came for the slanderers and i said nothing."
    21. Re:For the rest of us by Sperbels · · Score: 2

      And it caused the internet bubble, 9-11, the housing bubble, the Arab Spring, and molested several children in my neighborhood. Seriously one night I was coding in VB6 and I accidentally created an infinite loop....I shit you not it opened a portal to the ninth plane of hell and demons came pouring out. Satan's own right-hand-man had to come and stuff them all back into hell and close the portal, but not before praising me on the powerful black magic I was wielding with VB6.

    22. Re:For the rest of us by rochrist · · Score: 2

      I'm sure he wasn't aware of that. I'm moding this as useful.!

    23. Re:For the rest of us by iwbcman · · Score: 1

      I could not agree more. I cut my teeth on BASIC, later moving on to assembly, pascal eventually playing around with c++/java and my personal favorite vala. IF I had not had such a gentle hand holding experience like BASIC I never would have started programming. I know that there are lots of languages taught nowadays as beginners languages, but nothing compares to BASIC. Python absolutely sucks donkey balls for beginners-there is no reliable way for a newbie to cut and paste a small program -friggin stupid spacing bullshit. I eagerly awaited BYTE and RAINBOW magazine editions each month as a kid, each issue had small programs which introduced new ideas and techniques. Hell I wrote a WYSIWYG word processor in BASIC using hi-res (256x192!-) draw commands for each ASCII key, and was able to do text justification, scrolling, print, save and load functions for the CoCo, when I was 12(only having gotten my first computer for my birthday that year). I have a friend who has a brilliant 10 year old daughter who is bored out of her mind at school, due to a lack of challenge. I have been toying with the idea of trying to set her up with a raspberry PI, but there is nothing I have been able to find at all, despite quite intensive research, where she can use a book which contains descriptions of all the commands, syntax and coding examples. Javascript/python/ etc. are just way, way to difficult to use for absolute beginners. What potential pc's had for empowering the masses got lost along the way, for 99% of all computer users today have never even seen code, let alone are able to comprehend or write such.

    24. Re:For the rest of us by Jane+Q.+Public · · Score: 1

      It also had the advantage of being close to a standard untill MS teurned it into QBasic then dumped it.

      Yes and no. MS didn't "dump" QBasic.

      QBasic was turned into a full-blown compiled language, QuickBasic, which actually sold for a pretty reasonable price. QBasic still remained for some years after that. QBasic -> QuickBasic was actually pretty nice in that it turned BASIC into an actual procedural language, rather than being restricted to line-numbered spaghetti code.

      QuickBasic evolved into the Microsoft Basic Professional Development System. As of version 7.1, PDS gained an awesome highly optimized compiler, which compiled programs that were often more performant than C (except for graphics). The compiler contained many optimizations that we take for granted today: shortcutting of conditionals, etc.

      PDS 7.1 was interesting, in that it had a huge collection of add-on libraries you could compile into your code. Among those was a text-based, mousable user interface system with buttons, radio buttons, checkboxes, etc. The next stage was that PDS, with that library included by default, was marketed as Visual BASIC for DOS.

      Obviously, Visual BASIC for Windows followed soon after. Other languages followed, like Visual C++. Versions came and went, up to VB 6, at which point it all became Visual Studio, with different languages but a common base. Visual Studio became Visual Studio .NET, etc. etc.

      So Microsoft didn't "dump" QBasic. It gradually morphed into the programming tools they offer today. (Some good, some not so good.)

      Along the way, Microsoft eventually DID dump BASIC. Despite Bill Gates' public promise that Microsoft would "ALWAYS" support the BASIC programming language. But then he hasn't been exactly honest about a lot of other things either.

    25. Re:For the rest of us by aaaaaaargh! · · Score: 1

      I agree. I used to program in REALbasic, it was extremely easy to get reasonably good results and I generally had a great time with it and sold lots of high quality shareware. (I know, I know, REALbasic was also responsible for a lot of low quality shareware, no doubt about that, but you will always get this with such a tool.) As long as you didn't stumble over one of the many implementation bugs it was a lot of fun and the fastest way to develop. This was long before it became ridiculously expensive, back in the time when Andrew spit out one great and slightly buggy free update after the other, and even longer before the name of the language was changed to some silly meaningless word that I have immediately forgotten after I first heard it.

      I'm still looking for a decent substitute, even after I've switched to more complicated and equally excellent cross-platform languages like Racket. Python and Freepascal/Lazarus come closest to it but aren't nearly as easy to use and beginner friendly in my opinion.

    26. Re:For the rest of us by Anonymous Coward · · Score: 1

      The fact that it's not stand-alone is why most "BASIC" things don't work today.

      In the original Apple II, C64 and IBM PC, you had BASIC which ran *.BAS files. That was it. You could not compile those into .com files. There was no UI other than the F keys being mapped on some versions.

      Later things like QuickBasic/QBasic look a lot like the MSDOS "EDIT" program, which I'm willing to bet one was turned into the other. Complete with GUI Menus.

      But this is all fine and dandy until you want graphics. NOBODY EVER TEACHES GRAPHICS. That was the most frustratingly annoying thing in 1988, I had a 1000 page book on BASIC which said how to do everything, including play music, but not a single mention of how to create or load graphics.

      So here we are today with Javascript... AND STILL NO CODE TEACHES GRAPHICS. It's no longer as stupid as before, as you can pretty much do "view source" on something that does and figure out what they did. But it shouldn't have to be that way.

      For example:
      I want to put a 64x64 image on the screen and make it move between x1,y1 and x2,y2.... how do I do that? Well in Flash versions before AS3, it was EASY as flash focused on graphics first, and AS2 wasn't convoluted, AS3 forget it. But how do you do this in native HTML5? Hell if I know. What about canvas? SVG? The fact that there is 3 different ways to do this in the web browser and none use the same syntax is a problem.

      (And for serious, I know how to do this in all of the above, but my frustrations with this point go all the way back to BASIC which only had vector graphics options, and no documentation of how to do anything else.)

    27. Re: For the rest of us by Karlt1 · · Score: 1

      Even if Macs weren't so expensive, something cross-platform, like BASIC, would be better.

      BASIC was far from cross platform in the 80's. The computer magizines had different code listings for each platform.

    28. Re:For the rest of us by rochrist · · Score: 1

      The Amiga had some serious flaws. I had 3 of them as well, as Macs, Apple IIs and PCs. No memory protection so badly behaved programs could bring down the system and an OS hardwired to custom hardware which made it difficult to impossible to progress going forward. Plus, I personally, found the UI to be wretched. I did have a lot of fun on it though.

    29. Re:For the rest of us by darkain · · Score: 1

      BASIC evolved, too. Tools like Visual Basic (which had a WYSIWYG form editor) emerged. And then even that evolved again too into VBA (the scripting language for Microsoft Office). Yeah, I get the security bullshit with their implementation, but that doesn't deny the fact that it was a quick, simple, and extremely powerful tool for non software engineers to get in there and build some tools needed to get the day's job done. Especially with Excel, the ability to just hit "record macro", and then see the resulting code it generated as you preformed operations manually on a spreadsheet. Then analyse this code, and modify it to meet one's needs. This was an amazing way to get someone introduced to programming, as they can preform functions manually, and then get a listing of commands, they could then visualize the code back into those execution steps.

    30. Re:For the rest of us by unrtst · · Score: 1

      The article is completely wrong. The current version of Hypercard (RunRev's LiveCode) is cross platform: iOS, Android, BlackBerry, Windows Phone, Windows Desktop, Linux Desktop, Mac.

      And there are plenty of clones, many even supporting the original stacks. Google came back with this pretty quickly: http://hypercard.org/
      livecode looks fairly well polished though, and it's free-as-in-beer at least, so the only "revival" that's needed is marketing - assuming there's a market.

    31. Re:For the rest of us by Tom · · Score: 1

      VB with Access did one job and did it VERY well which was allowing anybody to build single function programs quickly and easily.

      As they say: To every problem, there's a solution that is obvious, simple, easy and wrong.

      I wrote in another post what a disaster Excel is, exactly because it allows every manager to create a business-logic spreadsheet - most of which are never checked for errors or boundary conditions and may fail you without even telling you that something is wrong.

      I've argued here many times against this meme of "teach everyone to code a little" for the same reason that we don't teach everyone to build houses a little - because there are things in this world that need to be done either right or not at all.

      With VB 6 plus Access one can whip off a program in a few hours to do anything from store and retrieve a customer's order history

      With no transactional security, no protection against unintentionally changing or overwriting data, no checking for referential integrity or validity. Yes. You can absolutely create a ticking timebomb for your business to crash and burn one day.

      If you're doing your home DVD collection on it - be my guest. The worst that can happen is that you'll have to actually search for a movie by hand.

      But please don't advise people to run business logic on VB and Access and write the code themselves.

      --
      Assorted stuff I do sometimes: Lemuria.org
    32. Re:For the rest of us by Lodragandraoidh · · Score: 2

      I had the pleasure of access to and use of an Amiga 1000 in '86. It hosted many of my firsts in computing:

      First use of a graphical interface

      First use of virtualization (hosted an IBM DOS virtual environment in a window - used for running and building DOS applications for IBM PC - the Amiga OS was perfect for this - since it virtualized it's own components as well)

      First filled polygon video game (3D up to that point was wireframe)

      First real multimedia PC used

      First use of a PC with a multitasking operating system

      First use of full featured embedded scripting capabilities in an operating system (MS DOS batch processing doesn't count)

      After using the Amiga, nothing that followed really surprised me - but most commercial solutions I found limiting in one way or another (e.g. Windows 3.1 lack of preemptive multitasking).

      In '95 was looking at OS2 Warp as a better alternative to Windows '95 [I wanted something that had tools I could quickly be productive with; I spent many hours with the Win32 API bible with little to show for it - and J++ just was a fail from an interoperability standpoint] - when I was introduced to Linux - which had what was missing, and dovetailed nicely with my studies at the university - (the computer science lab was well equipped with Sun Solaris machines - and we did all of our development coursework on Unix as a result - and when I got Slackware 2.3 up and running - I started dialing in my projects from home - my first exposure to telecommuting).

      The biggest lesson I took from my experience with the Amiga is that being productive with a computer should be easy - and if it isn't then you should look somewhere else until you find it. It may seem counterintuitive given that I ended up with one of the most difficult distros to install at the time. Having a built-in tool set in the form of command line scripting, and other extension languages, in addition to the core system programming languages was key to my own efficiency in getting things done. That being said - today, even for someone who knows how to program, finding easier/quicker ways to get work done is valuable. Everyone is not a computer scientist - and shouldn't have to be to make working tools for themselves easily. While projects have addressed subsets in this arena (spreadsheets, wordprocessing etc), no one has address the fundamental problem of creating a malleable tool for general purpose use - that I am aware of.

      IT departments in large companies, and the shrink-wrapped software companies do a good job of accomplishing large projects and particular popular niches (standard office suites) - but they are horrible when addressing the unique needs of the individual. That's where something like hypercard would find a home.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    33. Re:For the rest of us by Dutch+Gun · · Score: 1

      I think the fact that the author neglected to research modern Hypercard alternatives / derivatives and instead wants to see Hypercard(tm) again demonstrates this is largely a nostalgia/pining piece, nothing more.

      I'll always have a soft spot for AppleBASIC in my heart, since it was the first computer language I learned (on an Apple II+) when I was a youngster. It work great for me as an introduction to programming languages, especially since there was a fantastic, kid-friendly book* for me to learn from. But all that aside, I have no wish to bring back AppleBASIC. Technology has marched on. Nostalgia is best when it's remembered and not relived, because then you tend to see all its warts and flaws you didn't remember from twenty years ago.

      * I don't suppose anyone remembers the name of that book? It's an AppleBASIC tutorial for the Apple II+. I believe it had a red soft cover, and it had amusing illustrations of a cartoonish robot character throughout the book.

      --
      Irony: Agile development has too much intertia to be abandoned now.
    34. Re:For the rest of us by jbolden · · Score: 1

      Excellent link with that hypercard.org

      LiveCode has pretty good marketing. Their 2013 Kickstarter raised: £493,795. They run smaller ones regularly for one off projects. It wouldn't shock me if LiveCode is in the top 100 most popular languages.

    35. Re:For the rest of us by Guspaz · · Score: 1

      RunRev might be inspired by HyperCard, but it has no connection to it. It's not the "current version" of HyperCard.

    36. Re:For the rest of us by Ol+Olsoc · · Score: 2

      When I try to explain Filemaker pro to people, most tend to get badly stuck in excel-land. I had one guy who worked with excel spreadsheets for many years who never could grasp relational databases like FMP.

      So, how does it compare to Access?

      The most important part for me is that Filemaker supports both Windows and OSX, while Access is Microsoft OS only.

      Database size limits are much bigger with FMP. 8 Terabyte vs 2 gigabytes. Scripting is simpler than Access, which requires Visual Basic programming for many of the functions. You can publish to the web from FMP and control the security functions. With Access, you need Sharepoint Server. Note you can publish with an Office 365 account, but not the permissions, which require Sharepoint.

      There are some other advantages, like custom reports are pretty easy, and non-programmers can make some pretty sophisticated database systems. Overall, Access is not in the same league as FMP.

      Some times, it's hard to get all that through to a person that thinks Excel is a database though. I've had people tell me that it was impossible to do something in my database that I had been doing for ten years now.

      --
      The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
    37. Re:For the rest of us by Guspaz · · Score: 1

      Microsoft's latest release of Visual Basic was roughly a year ago, and there's no indication that the next release of Visual Studio will discontinue Visual Basic...

    38. Re:For the rest of us by fafalone · · Score: 1

      VB6 is a very useful and underrated tool. Not only is it good for programs like that, there's countless other things it's useful for. But the big draw is despite its age, it can take advantage of modern graphical styles, and many other goodies introduced in Vista and 7. Think you need a modern language to put forward and back buttons on the taskbar preview picture? Can be done on VB6. Think you can't use the latest file operation dialogs since SHFileOperation isn't able to? That was true until last week when I brought IFileOperation support to VB6. Using COM like that, class modules, subclassing/hooking/callback support, inline assembly support... it's still extraordinarily useful, and a modernized VB6 app looks identical to any other modern app. It's a shame MS replaced it with a "VB.NET" that has almost no relation and is just like C#.

    39. Re:For the rest of us by Daniel_Staal · · Score: 2

      I used both BASIC and HyperCard - they were dramatically different approaches. If you want a modern BASIC, try Perl or Python or Ruby or - you get the picture. There are dozens of suitable replacements; simple direct languages that can write a short command-line program easily.

      And you show the result to the average user out there and they won't even think it's a program. If you want a GUI - like everything out there today - you'll have to work on a major lift, some complex API that takes months to master, and days even for an experienced programmer to learn.

      HyperCard could get you a simple GUI-based program in minutes, that even a beginner could do. You could actually get quite a ways without writing a single line of 'code' - though you still needed to think about the structure of how you moved through the application. It could even be argued that you can teach that structural thought easier to certain types of learners, as you get a more dramatic and visual result.

      But the largest thing for a beginner that HyperCard could offer was a feeling of accomplishment: In a few minutes you had what 'felt' like a real application, with a GUI and everything. It doesn't look like a cliff to get to the point of writing a program that they can show off to their friends - even if it's a simple program.

      There are roles for both, but to get someone interested in programming, I think HyperCard is probably better. Once you have that pull out the major arcania of complex API's and huge libraries.

      --
      'Sensible' is a curse word.
    40. Re:For the rest of us by belmolis · · Score: 1

      A scripting language that I find much cleaner than Perl and without the unpleasant tabbing of Python is Tcl. A more recent language with more familiar syntax than Tcl is lua.

    41. Re:For the rest of us by Darinbob · · Score: 1

      There was a HyperCard like program for the Amiga, and I thought it was pretty slick. PCs at the time were just a bit clunky, still on DOS mostly, using graphical line drawing characters for lots of things.

    42. Re:For the rest of us by Darinbob · · Score: 1

      VB created a generation of idiots. As in idiot managers who seem to think programming is easy because they could create a buggy VB app in a day. Or those idiots thinking VB was brilliant while ignoring the competition that was vastly better (Delphi for example). Even the older dBase was better than VB+Access.

      VB did a lot of things, but it did them in very mediocre ways.

    43. Re:For the rest of us by ColdWetDog · · Score: 1

      You sure you're not confusing VB6 with Lotus Notes?

      --
      Faster! Faster! Faster would be better!
    44. Re:For the rest of us by Tablizer · · Score: 1

      I wrote in another post what a disaster Excel is, exactly because it allows every manager to create a business-logic spreadsheet - most of which are never checked for errors or boundary conditions and may fail you without even telling you that something is wrong.

      Often such is a good way to prototype ideas. It's when you keep using it long-term that the problems pile up.

    45. Re:For the rest of us by tlhIngan · · Score: 1

      There is a version of "HyperCard" for modern Macs, and it's been around a LONG time now (at least before the 90s).

      It's called SuperCard. (Official Site (it's hard to Google)).

      It can convert existing HyperCard stacks to SuperCard ones in a few minutes and has extensive support. Yes, it runs on OS X and Intel Macs, too.

      It's actually a bit better than HyperCard was back in the days - it supported color without extensions and other things, too. Of course, it costs money, but it's been available a long time.

    46. Re:For the rest of us by jbolden · · Score: 1

      It is inspired by HyperCard, based on the same ideas a successor to it and most importantly the far and away the most successful successor. I don't see anything wrong with considering it the next version of Hypercard. And I'm not alone in that: http://opensource.com/educatio...

    47. Re:For the rest of us by wierd_w · · Score: 1

      in quickbasic (and msbasic before that), you use the built-in graphics routines GET, and PUT, and make use of a graphics mode. GET and PUT use a user-defined variable to store graphics data, and require at least 1 set of screen coordinates. (GET requires 2 sets-- the top left, and the bottom right corners of the area to GET-- Put only requires 1 set of coordinates; the top left position of the data to be PUT on the screen.) The usual choice for easy graphics routines is mode 13, however, if you first do a poke, you can get into the infamous "Mode X" instead, if you have a VGA card. Ideally, and to avoid flicker, you want a graphics mode with 2 display "pages"-- (actually, 2 display buffers), You perform the PUT command on the INACTIVE page, then switch the page with a PUT command to the VGA controller. This way the human does not see the page being drawn on. You can use this to do simply iterative composting of images to get new ones, etc. (EG, writing several characters on top of each other to get custom shapes quickly, etc.) Once you have written data to the page and then switched the active/inactive pages, you need to re-draw the new inactive page each time if you are doing animation. Getting data written to the inactive page quickly is a significant hurdle with QBASIC, as the builtin functions are painfully slow.

      With visual basic, you need to create a new form object, define its size, add an image object to the form, load data into the image object, then activate the form. This will display a window with a picture in it. You can move the picture around inside the form by modifying the properties of the image object, one of which is the position property. You can also move the form's window position around this way as well.

      (If you wrapped a few win32api COM libraries with local subs and structures, you can directly call the win32api to produce an opengl window, and draw all over that with opengl calls... but that isn't pure VB)

      with javascript and a browser's javascript interpreter, you simply define an image element, populate it with image data of some sort, then define the absolute position of the image (and its z-level) using variables controlled by the vbscript.

      It isn't that nobody "teaches graphics"-- it's that graphics suffers from the "Yet ANOTHER Library!" problem. Do you want to draw using directx? OpenGL? Vesa? SDL, nCurses, etc.

      Graphics are not a fixed, easily agreed upon set of things that a computer should do-- like say, arithmetic or logic is. As such, it does not get an obviously "best practice" implementation that can be taught. Doing graphics is not something that an instructor can tell a student how to do, and have it "Stick" everywhere, like a FOR-NEXT loop, an IF-THEN-ELSE logic block, a CASE statement, or a basic raw datatype (String, Integer, Float, etc) that is basically the same no matter where you go in programming. (An unsigned short integer is an unsigned short integer everywhere you go.) How you scribble graphics onto the screen simply lacks the same riggor; The ways OpenGL, DirectX, and raw frame buffer manipulation with ASM work to get data onto the screen that is fully artistic in nature cannot be effectively taught one, and implemented the same way everywhere else.

      If you want to learn graphics, you are going to have to trust to help you lean an master that part .

    48. Re:For the rest of us by Tom · · Score: 1

      The problem is that the exact kind of people who make these DIY spreadsheets and then use them for their business decisions are also the kind that don't understand the concept of a software prototype.

      --
      Assorted stuff I do sometimes: Lemuria.org
    49. Re:For the rest of us by RabidReindeer · · Score: 2

      The Amiga had some serious flaws. I had 3 of them as well, as Macs, Apple IIs and PCs. No memory protection so badly behaved programs could bring down the system and an OS hardwired to custom hardware which made it difficult to impossible to progress going forward. Plus, I personally, found the UI to be wretched. I did have a lot of fun on it though.

      Actually, none of the popular OS's of the day had memory protection. But they were all either mono-tasking or had some sort of arcane co-operative multi-tasking that required careful programming. The Amiga was designed so that even the simplest sloppiest "hello world" program was running under multi-tasking, but the base-level hardware (Motorola MC68000) had no integral memory management unit. The later models, based on the 68020 and 68030 could have had memory management, but Commodore wasn't capable of the necessary forking of the OS.

      The custom hardware was fronted by APIs expressly designed so that people who followed the Amiga developer's guidelines would be isolated from hardware dependencies and hardware improvement. Which isn't to say that a lot of people didn't out-clever it, but no OS is immune from clever-itis.

      A friend of mine said the Amiga UI looked like it was done with crayon, and he's probably right. On the other hand, the thing I miss most about the Amiga is that it was smart enough to hide the mouse pointer when you started typing near it (so the pointer wouldn't hide text being typed), and the alert dialog boxes didn't steal the input focus. I cannot begin to count how many times something horrible has happened on other systems when I was typing in a text window, a dialog popped up and considered my "end-of-line" to think I had just hit "Yes" on an "OK to reformat disk?"-type dialog.

    50. Re:For the rest of us by Half-pint+HAL · · Score: 1

      The only change needed is the addition of labels instead of line numbers as references, and then we could type GOTO HELL, which would make BASIC look self-aware....

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    51. Re:For the rest of us by RabidReindeer · · Score: 1

      BASIC had its day. The original BASIC was designed for an extremely limited environment (for example, single-character variable names). What most people think of as BASIC was the Microsoft Visual Basic [TM], which is considerably different.

      Note the word "Microsoft". That was its boon and its bane. Microsoft owned it - and its successort, VB.Net, and only systems with Microsoft's blessing ever got it. The Amiga got a variant of it, I think some Mac systems got one, but Linux never did as far as I know. Linux had to make do with Python.

      Python has become to Linux - and by extension, the current MacOS and BSD platforms - what VB was to Windows. It would certainly make a good hyperscripting language, and it's not at the mercy of a single vendor.

    52. Re: For the rest of us by mcgrew · · Score: 1

      True, but it was trivial to take, say, Sinclair BASIC and convert it to Apple II's BASIC. If you knew one dialect, all the rest were easy to write in.

    53. Re:For the rest of us by Half-pint+HAL · · Score: 1

      The problem with Python is that it's designed to look like other languages.

      The problem with BASIC is that it's crap.

      Everybody who tries to make a new language these days makes a very similar series of mistakes, under an understandable rationale of either "well, this is the gateway, so it's got to prepare them for 'real' languages" or "the language will never take off if existing programmers find it too alien". When we get to things like GameMaker, you end up with a claim of "programming without programming", but what we find under the hood is a basic C++/Java-lite OO language with crucial programming ideas rechristened with "friendly" names that only serve to further obscure the logic from the programmer.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    54. Re:For the rest of us by Warbothong · · Score: 1

      Seriously one night I was coding in VB6 and I accidentally created an infinite loop....I shit you not it opened a portal to the ninth plane of hell and demons came pouring out.

      This is common in C too http://www.catb.org/jargon/htm...

    55. Re:For the rest of us by rochrist · · Score: 1

      Yeah, I'm aware that none of them had memory protection, but then again, none of them were trying to run a pre-emptive multitasking OS. Plus, I forget the specifics, but I'm pretty sure memory protection was possible with the 68000. SunOS managed IIRC. I think the problem was that the Amiga kernel wasn't running in privileged but rather unprivileged user mode.

    56. Re:For the rest of us by Jane+Q.+Public · · Score: 1

      Pardon me. That is correct. Some years ago they announced that they were going to discontinue VB but they never did.

      As far as I was concerned, .NET pretty much ruined VB. I used C# .NET for a while and didn't much like that, either. I mean, come on! Having to manually attach click and keypress events to a button? WTF? Any self-respecting button object should have those properties already defined. (Else what is the button good for?)

      I am given to understand (from a former co-worker) that MS has now fixed many of the things that used to make .NET so awful.

      So the last VB version I thought was really worth using was VB 6. But the newer stuff may be worth another look.

    57. Re:For the rest of us by Guspaz · · Score: 1

      As a C# .NET developer, I obviously disagree with your assessment. I've not used Visual Basic .NET, but the Windows.Forms UI designer (which would have been available in VB.NET) never made you manually attach events. Click events were defined in the events list, and you could just click on them to attach the event and create a stub of the event handler, or you could just double click on the button in the designer to do the same thing.

    58. Re:For the rest of us by davydagger · · Score: 1

      > I have no doubt that they were the best personal computers around. I used them.

      apple was a cult even back then. macfags were always macfags.

      Apples pre-osx were fairly garbage. they had a reputation for being "better with graphics", that was long obsolete by the time the first AGP video cards came around, and they were behind in many issues such as not having shared libraries, and frequent crashes between conflicting programs and extensions.

      By the time 3d accelerators and sound blasters came standard on PCs(sound blaster always had better sound than whatever mac stapled on), and the beginning of the nVidia/ATI wars, macs were left in the dust capability wise.

      But you had a small loyal, fanatical group, mostly tech illiterate that bought into the marketing hype.

    59. Re:For the rest of us by RabidReindeer · · Score: 1

      No, the 68000 had no MMU. All the Sun/Apollo machines I knew of had 68020's in them, which do have MMUs.

      Motoroloa made the MC68851 as an external MMU device, which could be paired with the 68000, but the Amiga didn't incorporate it.

    60. Re:For the rest of us by Saint+Fnordius · · Score: 1

      I think that's the biggest issue - not that SuperCard isn't a worthy successor, but that it is hard to find and it costs money. HyperCard used to be free and available for every Mac user, so it was a natural gateway drug for programming. What also made it accessible was that it was meant to handle data - the "card" in the name comes from its roots as a database program. It was easy to whip up a recipe database, or an address book, and so teach hobbyists about how data is stored.

      I do not expect HyperCard to come back, as that vital element of giving it away for free and still have a powerful tool has been tried. In fact, I suspect that love for HyperCard is fuelled more by nostalgia than anything else. Eventually we may be mourning the loss of WYSIWYG HTML editors for the same reason.

    61. Re:For the rest of us by ncc74656 · · Score: 1

      The "programmers" can scream all they want but VB with Access did one job and did it VERY well which was allowing anybody to build single function programs quickly and easily. VB code was very human readable

      I'm stuck maintaining some Access projects. "Readable" isn't an attribute I'd apply to most of the VBA "code" I've run across.

      --
      20 January 2017: the End of an Error.
    62. Re:For the rest of us by hairyfeet · · Score: 1

      Bullshit .NET is a LOT more obtuse than VB6, just go to Wikipedia and compare the Hello World programs of the two languages. VB.NET is just another clusterfuck from Balmer, another hamfisted way of trying to force a language nobody wanted onto the world by grafting it onto something people DID want and just like Metro its bloated, badly laid out, and is worse in every way than what came before it.

      Sorry but there is a reason why years after VB.NET that VB6 was still the #3 business language and VB.NET wasn't even in the top 5, its because .NET sucks.

      --
      ACs don't waste your time replying, your posts are never seen by me.
    63. Re:For the rest of us by hawk · · Score: 1

      Uhm, how is this different since any other microsoft product since MBASIC 5???

      hawk

    64. Re:For the rest of us by awshidahak · · Score: 1

      You're not modding anything with comments like that!

  2. Uh... have you even heard of LiveCode? by Anonymous Coward · · Score: 5, Informative

    LiveCode is free, supports Mac, Windows, Linux, iOS, and Android. Best of all, it speaks HyperTalk, plus has more flexibility HyperTalk didn't.

    I've moved on from wanting HyperCard, to using LiveCode.

  3. VPRI by K.+S.+Kyosuke · · Score: 1

    Obligatory - smart people have been working on it for quite some time. (Although admittedly, their main goal is to prove that common personal computing is ultimately squashable into 20 kLOCs.)

    --
    Ezekiel 23:20
  4. Uh... haven't you heard of LiveCode? by Anonymous Coward · · Score: 2, Informative

    I learned on HyperCard, so I know your pain. I still use HyperCard daily at work.

    However, many years ago I discovered Runtime Revolution, a commercial product that is effectively what HyperCard should have been. Recently it's been released freely as LiveCode. Check it out. Runs on anything you'd want it to (Mac, Linux, Windows, etc.).

  5. Great idea by cdwiegand · · Score: 3, Interesting

    I learned to program with both BASIC and HyperCard, depending on which machine I was on at the time, back when I was younger. I think it's a great idea. I built simple "database" simulations, using nothing more than the free stuff that came with it, and it helped to mold my initial approach to programming. I even created a testing program we used at my high school for a couple of my teachers that was ran over a network. It was fun AND useful.

    --
    . Define sqrt(x) as something really evil like (x / rand()), and bury it deep. Watch your coworkers go nuts.
  6. ETLA AFU by smittyoneeach · · Score: 1

    APL, FYI. HAND.

    --
    Get thee glass eyes, and, like a scurvy politician, seem to see things thou dost not.--King Lear
    1. Re:ETLA AFU by K.+S.+Kyosuke · · Score: 2

      APL is quite domain-specific. The guys I mentioned are basically working on metalanguages, in order to allow them to describe application domains as succinctly as possible. By way of example, APL could be one specific instance of a result of applying their methods to one specific domain, whereas they're focused on providing the tools for you to do that for an arbitrary domain you're confronted with. In fact, this is their second most recent published paper.

      --
      Ezekiel 23:20
  7. Recreating Hypercard? by Midnight+Thunder · · Score: 1

    I have seen some attempts to r creating HyperCard, but nothing really seems to have come of them. If there are any successful or fully functioning open source equivalents I would be interested in knowing about them.

    I used HyperCard a bit and in certain ways the closest equivalent is something like PowerPoint or Keynote, though even with them there I a huge gap with HyperCard did. I wonder whether Apple could recreate a 21st century HyperCard, but using Keynote as a basis?

    --
    Jumpstart the tartan drive.
    1. Re:Recreating Hypercard? by jbolden · · Score: 2
  8. ifttt by cosm · · Score: 1

    https://ifttt.com/ Check it out.

    --
    'We are trying to prove ourselves wrong as quickly as possible, because only in that way can we find progress.' RPF
  9. Google Wave by gjh · · Score: 1

    I've felt the same way for years. I had high hopes for Google Wave to fill the gap.

    It's not the same thing, and scripting for end users would not have been the same, but we don't need a direct replacement. We need:

    - Web based, cloud based.
    - Multi screen sized, flowable
    - The card stack model from HyperCard was GOOD for naive use - and perfectly carried into Google Wave
    - Simple scripting, but probably JavaScript not HyperTalk

    In fact, my ideal system is somewhere in the middle of Wave, HyperCard, Lotus Notes, XSLT or similar and the web.

    - Document templates that can be filled in. Let's get rid of MS Word and have more structured docs, but in a way that hobby developers can cope with.
    - Effective visual editing of templates; HTML template editing but much more like a good UI editor,
    - Somehow remove all the complexity from the scripting of events... HyperCard WAS good at this!!

    I'm not going to mention SharePoint. MicroSoft NEVER understood groupware!

    1. Re:Google Wave by mcgrew · · Score: 1

      Effective visual editing of templates; HTML template editing but much more like a good UI editor

      I've always used a text editor for HTML since automation always seemed to produce bloated, unreadable (if not edited by hand) garbage, whether AOL's, Netscape's, Front Page, Word Perfect, or Word.

      However, I discovered recently that you can get very good HTML from Open Office, but the way to go about it is really convoluted thanks to Oo's retarded menu structure. Under "file" towards the bottom of the list, nowhere near "export" where it should be, is "view in browser". Saving the web page from FoxPro produces excellent, readable HTML. However, I didn't run it through the WC3's HTML validator.

    2. Re:Google Wave by thogard · · Score: 1

      Google Wave was some very interesting technology but I think it was pointed in the wrong direction. It wasn't ever considered as a way for the Internet of Things to talk to each other in a reasonable way and everything Google did with it was around pushing it in front of people, not devices. There might have been a time where the terms of service didn't allow devices to communicate using it for message passing.

      Language development these days seems to have stalled around a few specific areas which are separated by the family trees of the languages. There were plenty of languages from the past that excelled in one area or another that is often difficult or every inefficient with more modern architectures. Many of the 4th generation languages had some very cleaver ideas. Even new languages like go don't help with a major problem because there is no base type for money so programmers are left to their own devices and end up with floating point issues or just using cents or even worse problems because of the underlying hacks.

  10. No, it's not time to do that. by Anonymous Coward · · Score: 5, Insightful

    So we shouldn't have easy-to-use tools for people to LEARN how to program? Or for people (including kids) who never thought about programming, but took interest in it only after writing some software using an easy-to-use tool?

    I started using HyperCard in 1990, in grade 9 after-school computer class. I loved it. I've been writing code ever since.

    Get off your high-and-mighty "professionals are the only ones who can do things" box. Just because you might have a degree, doesn't mean you know your face from your ass when it comes to code compared to some there people who don't. Just sayin'.

  11. Its built in language is called "Grundle"? by Anonymous Coward · · Score: 3, Interesting

    I'm intrigued by the idea of LiveCode, but are you serious about its built-in language being called "Grundle"?

    I can't go to my boss and suggest the use of LiveCode if it has a name like that. For anyone who doesn't know, grundle refers to the area between a man's anus and scrotum.

    The Coq Proof Assistant project has a similar problem. This software would be seriously useful at work, but we can't be sitting in meetings with passersby hearing us saying what they hear as cock (as in a long, thick, throbbing penis) for hours on end. We also can't go to customers and say stuff that they'd hear like, "Don't worry, our cock has verified it."

    1. Re:Its built in language is called "Grundle"? by zippthorne · · Score: 1

      Then pronounce it Coke instead. English is pretty malleable, so if the pronunciation catches on, it'll be the right one. There is a lot of history of the sounds of words diverging from their spelling. I mean, seriously, draught is pronounced draft? WTH? How am I supposed to remember that after drinking a few of them.

      Also, please see the pronunciation of Coq au vin

      In fact, given that they're both french, are you sure that you've been pronouncing it right all this time?

      --
      Can you be Even More Awesome?!
  12. Re:No, it's not time to do that. by nukenerd · · Score: 1

    We don't need more average or low-end hobbyists writing software. ... When these amateurs try to write code in any sort of a business or professional setting, it usually ends up being the IT department or professional software developers who get to maintain the crap code in the end

    I did not think this is about writing enterprise software. Where I work the system is so locked down that you could not write anything yourself anyway. Even before it was locked down, there was no way that IT would have taken over code not written outside their Dept.

    When personal computers first came out they were all about the user programming it themselves. I still have some old handbooks that came with computers then (they were well written) and they were straight on to programming (in BASIC, or OPL in the case of the Psion hand-held I once had). These were easy and satisfying languages to use for what they were intended. For eg the Psion I wrote programs to keep score in Scrabble, "throw" dice, keep track of my bank balance, and such like. That is what this is about.

  13. dupe.. no, trip..., no... by cellocgw · · Score: 1, Funny

    This opinion gets written up at least once a year. Nothing's new this time around.

    Except..

    Now we have a viable alternative to Hypercard: the Brainfuck programming language.

    You can thank me later.

    --
    https://app.box.com/WitthoftResume Code: https://github.com/cellocgw
  14. doesnt work by Charliemopps · · Score: 3, Informative

    I've used these sorts of things extensively before. They all fail for the same reason.

    Programmers often assume that the hard part of programing is the obscure syntax of languages, because to them when learning a new language, that's what's hard. And while yes, the syntax is difficult at first, the novice does get it eventually. The real problem with the novice is often the counter-intuitive logic often presented in programming.

    For example, take the typical problem of "If they chose Yes, I don't want the program to do X. But if they don't, I do what them to do X"
    The novice often has a hard time even articulating that condition in the English language, much less a programming one. How would simplifying the syntax make it any easier?
    The solution to a programmer is simple: If "yes" then X
    and the novice asks in alarm "Greater than or less than?!!? WHAT?"

    So then you have your "easy" programming language that's similar to English. That's great, how do you articulate that previous statement in that language now? It's not any easier. On top of that, because you've dumbed down the language to make it more user friendly, you've likely also taken away a lot of its power. The archaic syntax of languages is often for a very good reason. And when that user does start to get somewhere, they'll end up in a forum asking how to do it, and the programmers will flat out tell them the logic at which point they'll find out that they can't apply that logic because of the simplified syntax.

    If you're just starting out, I'd recommend this: http://www.autohotkey.com/
    The syntax is about as user friendly as you'll ever get.
    You can write the applications in notepad
    You don't even have to compile them if you don't want to.
    It can do just about anything any major language can.

    1. Re:doesnt work by tomhath · · Score: 2

      .For example, take the typical problem of "If they chose Yes, I don't want the program to do X. But if they don't, I do what them to do X"

      ...

      The solution to a programmer is simple: If "yes" then X

      Shouldn't it be: If "Yes" then pass else do X"? Buggy code indeed.

    2. Re:doesnt work by west · · Score: 1

      Exactly this. Writing non-ambiguous instructions in English (or any human language) is ridiculously difficult, and attempts to do so end up (not surprisingly) in legalese, which is often harder to understand than a programming language with a decent syntax.

      Natural language programming is pretty much an oxymoron, because there's almost nothing natural about programming (with respect to human beings).

      Over the years I've come to hate tools that pretend to management that you can essentially program without actually having to pay an expensive programmer. Inevitably, it ends up with a programmer having to work with a set of tools that are inferior in every way doing programming.

      Okay, *almost* inevitably.

      The *only* thing that natural language programming languages are good for (and I suppose this isn't entirely negligible) is discovering people who are natural programmers, but were scared away because of syntax and a "programming is magic/difficult" mindset. I've pushed a few people to learn programming when their natural talent became obvious despite a "I could never program" mindset sitting in front of thousands of lines of "not a program". It was almost painful to see how hard they had to work to push these tools to the sort of beautiful results that they did.

    3. Re:doesnt work by TeknoHog · · Score: 1

      because you've dumbed down the language to make it more user friendly, you've likely also taken away a lot of its power. The archaic syntax of languages is often for a very good reason.

      IMHO, good languages are fairly terse, because they allow you to see a bigger picture at a glance. Mathematics has plenty of examples of this -- you often devise some ad hoc notations to make a complicated problem easier to visualize. In programming, the obvious equivalent would probably be functions and classes etc. but it helps if the language is not too verbose to begin with.

      --
      Escher was the first MC and Giger invented the HR department.
    4. Re:doesnt work by Charliemopps · · Score: 1

      .For example, take the typical problem of "If they chose Yes, I don't want the program to do X. But if they don't, I do what them to do X"

      ...

      The solution to a programmer is simple: If "yes" then X

      Shouldn't it be: If "Yes" then pass else do X"? Buggy code indeed.

      Slashdot filtered out my code... sorry.
      there are supposed to be "greater than / Less than" symbols in there.

    5. Re:doesnt work by jbolden · · Score: 1

      Reading below you wanted greater than / less than. That's obscure syntax. How about
      If answer is not "yes" then do X

      which is COBOL.

    6. Re:doesnt work by jbolden · · Score: 1

      I have to say the getting people in the door thing is pretty cool. I always like to give this example. My doesn't-know-how-to-program wife wrote herself a custom device driver in AppleTalk without even knowing what a device driver is or what one does. That's success.

    7. Re:doesnt work by Oligonicella · · Score: 1

      "If they chose Yes, I don't want the program to do X. But if they don't, I do what them to do X"

      Wow. That may be a typical problem but it's sure's hell not the typical way of stating it. I would have stated it as "If they don't chose Yes, I want them to do X." You sir, cluttered the problem statement with unnecessary verbiage.

      So then you have your "easy" programming language that's similar to English. That's great, how do you articulate that previous statement in that language now? It's not any easier.

      Answered above and, yes it is.

    8. Re:doesnt work by Oligonicella · · Score: 2

      Use the preview: < > or !=. (Just in case, that does display in preview.)

    9. Re:doesnt work by Oligonicella · · Score: 1

      I should have used the preview on the blockquote.

    10. Re:doesnt work by west · · Score: 1

      A device driver??!?

      That *is* success :-).

    11. Re:doesnt work by Spy+Handler · · Score: 1

      If you're just starting out, I'd recommend this: http://www.autohotkey.com/
      The syntax is about as user friendly as you'll ever get.
      You can write the applications in notepad
      You don't even have to compile them if you don't want to.
      It can do just about anything any major language can.

      What?? Really?

      I used autohotkey before to make automate some keystrokes for leveling up in an online game (power leveling bot). But I had no idea it was a full featured programming language.

      You mean to say AHK can access databases and serve up web pages and stuff??

    12. Re:doesnt work by jbolden · · Score: 1

      Yes a device driver. She wanted a transcription foot pedal so she tied various foot pedal actions (think something like a mouse you use with your feet) directly to QuickTime regardless of the currently active application. Totally breaks the paradigm of active application gets input (keyboard, mouse...) that's a custom device driver.

  15. Project Siena by timmyd · · Score: 3, Informative

    Well this might not be for Mac users, Microsoft Project Siena might be a useful option for people on the Windows platform. http://www.microsoft.com/en-us...

  16. Re:Uh... have you even heard of LiveCode? by BitZtream · · Score: 1

    This 'story' is just a copy/paste from Ars Technica used to get the submitters URL/username on the front page of slashdot.

    --
    Persistent Volume manager for Kubernetes - https://github.com/dwimsey/openshift-pvmanager
  17. Not exactly the same, but... by risht · · Score: 1

    Thingamy seems to have a similar goal, but appears to be targeted only for large user base purchases. Sad, as the background material seems well thought out. http://www.thingamy.com/

  18. Re:No, it's not time to do that. by gestalt_n_pepper · · Score: 5, Informative

    Obviously, you've never had to hire CS graduates.

    I can't tell you how many of these bozos who've learned in a "formal" setting can barely manage a coherent if/then statement, much less successfully complete even a small in-house application.

    Granted, most of the self-taught crowd is weak on specialized algorithms and data structures. On the good side, self motivated autodidacts rarely have trouble picking this up, when necessary. CS grads seem to need a professor, hand-holding and a cookie in order to learn anything new.

    --
    Please do not read this sig. Thank you.
  19. SuperCard by shubus · · Score: 4, Informative

    We already have a pretty nice 3rd party product called SuperCard which is very compatible with Hypercard. At $279 its not getting much traction. Apple should buy this product and ship it free with every Mac.

    1. Re:SuperCard by tepples · · Score: 1

      Sure, you can use a SuperCard to get your programs onto a Game Boy Advance or Nintendo DS, but how do you make the programs in the first place without deep knowledge of C and tiled graphics?

    2. Re:SuperCard by shubus · · Score: 1

      Good point: I used HyperCard to manipulate information not to create games. Objectives vary.

  20. Writing code is not the challenge by Opportunist · · Score: 3, Insightful

    It's fairly trivial to learn a language at a decent level. We have a lot of languages that abstract away all the "hard" stuff like OS interaction and memory management. Take Java. Take C#. There is literally an object for EVERYTHING you could possibly ponder doing. You dump some values into that blackbox, it does its magic and presto, result.

    The hard part of creating software is designing it. And no environment can take that part out of your hands. There is simply no way some piece of software could magically read your mind and produce it.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    1. Re:Writing code is not the challenge by Tom · · Score: 1

      It's fairly trivial to learn a language at a decent level.

      I assume you're already fluent in several. That's the trick why it appears easy. I know about a dozen programming languages, and for some bullshit reason needed to learn some Racket recently. Even though I never heard about it before, and have never written code in Scheme or LISP before, it took me one hour to have the first non-trivial program running and a day to do useful stuff.

      But, I've also seen how people struggle with simple, friendly, idiot-proof things like Java when it's their first or second programming language. It really isn't that easy if you don't have all the experience from other languages that you can transfer. People who are learning Java, even after one or two weeks they need an hour or so to write code that will probably take you and me roughly the time it takes to type it in.

      Programming is difficult, if you're not a programmer already.

      --
      Assorted stuff I do sometimes: Lemuria.org
    2. Re:Writing code is not the challenge by K.+S.+Kyosuke · · Score: 1

      Coincidentally, the Racket people are writing HtDP, 2nd edition right now. That at least partly addresses the problems many people, especially beginners, have with the basics of design.

      --
      Ezekiel 23:20
    3. Re:Writing code is not the challenge by Tom · · Score: 1

      Frankly speaking, Racket is a steaming pile of horse manure, and the sooner I don't have to ever touch it again, the better.

      And I say that as someone who likes the concept of LISP.

      --
      Assorted stuff I do sometimes: Lemuria.org
    4. Re:Writing code is not the challenge by K.+S.+Kyosuke · · Score: 1

      Any particular technical argument? :-) Not that I would vigorously defend Racket, mind you; for a language derived from one that is hell-bent on unifying concepts (namely Scheme), the way in it duplicates concepts again (for example, by including a manifestly typed sublanguage despite already-present contracts, and a message passing object system despite the perfectly obvious option of adding generic functions) makes me very puzzled. BTW, what exactly did you need it for?

      --
      Ezekiel 23:20
    5. Re:Writing code is not the challenge by Tom · · Score: 1

      I don't actually need it for anything, that's probably one reason for my dislike. I just had to learn it for a project I'm involved in.

      There are no actual technical arguments, because I haven't dug in that deep. But from the very beginning the fact that you can do the same simple thing in three different ways, one of them for historical reasons and one simple because shows weak language design. The fact that you need to simply know so many idiosyncrasies (like if requiring an else but failing silently if you leave it out, or that any term that's not #f always evaluates to true, unlike in basically every other programming language ever) drives me crazy and also hints and unfinished design. And finally the strange mixture of being strict but not really, like runtime type-checking on strictly typed variables, or the fact that they have defined inexact-integer as a datatype, which is just completely bollocks, just drives me crazy. Especially because while their language is anal retentive about exact and inexact, their documentation doesn't give a fuck and will tell you that, for example, you get an integer back from round, but only by knowing or experimenting you can figure out that it's an inexact integer, which you can't use to get an entry from a list because you need an exact integer for that. All put together, these and a hundred other details tell me that the people who designed this language didn't mean for it to be actually useful, they were scratching some theoretical academic itch. To me, the fact that you can nicely calculate even abstruse series in three lines of code, but fetching a specific item from a list based on a calculation you've done requires two type changes is a good hint at where their minds were.

      I think I started to rant somewhere in there, sorry.

      --
      Assorted stuff I do sometimes: Lemuria.org
    6. Re:Writing code is not the challenge by K.+S.+Kyosuke · · Score: 1

      There are no actual technical arguments, because I haven't dug in that deep. But from the very beginning the fact that you can do the same simple thing in three different ways, one of them for historical reasons and one simple because shows weak language design.

      You'd have to elaborate on that, because this is pretty vague. Modern Scheme indeed still does a few things for historical reasons, but I haven't noticed anything that I'd considered a major issue. In fact, Scheme as such arose precisely to throw away the major weakly-designed historical features in early Lisps (such as implicit dynamic scope), and, in the eyes of many people, it fared splendidly in doing so.

      The fact that you need to simply know so many idiosyncrasies (like if requiring an else but failing silently if you leave it out, or that any term that's not #f always evaluates to true, unlike in basically every other programming language ever) drives me crazy and also hints and unfinished design.

      Yep, the IF syntax without an alternate could perhaps confuse people. Most likely the reason for that was that after Lisp ceased to be a purely functional language fairly early on, IF came to be used for side-effecting. That meant that you didn't need to use the alternate clause.

      Now in Common Lisp, this eventually came to be a matter of style: you use IF for conditional expressions, for which it is eminently suitable because it always returns a value (and you never omit the alternate clause); and you use the WHEN macro for the occasional side-effecting, for which it is equally eminently suitable because of its implicit PROGN.

      In Scheme, if you absolutely have to do this (side-effecting is generally not encouraged in Scheme anyway, as far as I'm concerned), you'd use (IF <condition> (BEGIN <statement&gt ...)) for such situations. I presume one could use some form of static analysis to hint at problematic spots where the alternate is missing but the consequent doesn't contain a BEGIN, but since you're supposed to indent your code in a uniform way anyway - if the subclauses are forms, both will be on separate lines - such spots should be immediately obvious to any Scheme programmer. I find it peculiar that one should run into problems with that.

      The fact that #f is the only thing that evaluates as false is often useful. Unless you want to go through algebraic datatypes, it's a simple way of having a union of any multi-valued data type and a unitary value for failure. I'm pretty sure Scheme is hardly the only language that has something similar - SQL does this with NIL (although there's a strong argument that a relational language is exactly one that shouldn't have this feature, but they included it anyway - go figure!), Lua returns nil for values not defined in tables, etc. Common Lisp - and other lisps - use NIL for the same purpose, but then again, COMMON LISP does not have a dedicated boolean type, even if it has a dedicated constant T that serves as the canonical true value (in the type system, T also serves as the top type, whereas NIL serves as the bottom type, forming a nice lattice of sorts).

      In fact, the #f situation is a rectification of the problem of NIL in Common Lisp: Not only is NIL the false value, but it's also the same thing as the empty list (it's basically a unitary value, all three of NIL, () and '() evaluate to the same value), which turned out to be problematic because if you want a function that returns either a list or a failure (which seems quite common), save for conditions (which may not be worth the cruft and often isn't desirable anyway, since the failure may be a perfectly common situation) or multiple return values, you can't distinguish between the empty list and a false value and have to use a unitary value of your own. Scheme rectifies this, and I'm not aware of Schemers having actual problems with that arrangement.

      There are multiple languages that I'm aware of

      --
      Ezekiel 23:20
  21. Sounds Kind Of Like Jmeter by Greyfox · · Score: 1
    I worked on testing with Jmeter a while back and Hypercard sounds pretty similar to it. It basically just holds a tree of mementos, which it serializes to XML for storage. They've more or less implemented an entire visual programming language with branching and looping, database and web page access. It's also easy enough to add new functionality to it by implementing a new java class.

    The problems are that all variables are global and there's not a good way to create a function for it. It's not designed as a visual programming language but as a simple way to put together a bunch of simple tests that don't need to reuse a lot between them. If you want to share the code that logs into your web page every time, the easiest way to do that is cut and paste. Then you have to change 80 copies of it if you ever update that code. They were working on improving that situation last time I looked at it. You wouldn't ever want to use it to accomplish work in a production environment, but you probably would never want to use Hypercard to accomplish work in a production environment. Some people probably DID do that, but you wouldn't want to.

    The problem with creating something like Hypercard is that it's very hard to hit that sweet spot where it's easy enough for non-programmers to use while being powerful (and secure) enough to be useful. Whenever people get their hands on something like that, they tend to start working around its deficiencies to accomplish their goals. You end up spending more time working around the deficiencies in the environment than you would have if you'd just written the application in a real programming language to begin with. There was quite a lot of THAT going on in the late 80s early 90s, too.

    --

    I'm trying to teach myself to set people on fire with my mind... Is it hot in here?

  22. Was there a gap? by nashv · · Score: 1

    Wasn't that the idea behind Visual Basic, the users could write their own little functional pieces of code. This is why VBS macros exist in Microsoft Office and Windows.

    --
    Entia non sunt multiplicanda praeter necessitatem.
  23. I got an A+ with Hypercard by ichabod801 · · Score: 2

    I programmed Hypercard a lot in middle/high school in the mid 80s. I got to college and was taking an AI course using Lisp, and was working on a reinforcement learning assignment. I had a bug in my program I couldn't track down. The smartest guy in the class sat next to me and he couldn't figure out the bug. Neither of the two TAs for the class could figure out the bug. I rewrote it from scratch and still had the bug. At one point I said "If I was working in Hypercard, I know how I could solve this." The smartest guy in the class said "That's crazy." The TA who was helping me out said "When you're ready to talk seriously about this I'll come back and help you." I went home that night a wrote it in Hypercard and it worked. Slow as all hell (it took 24 hours for one test run), but it worked. It was easy to make nice graphics of the mouse and the maze the assignment was about, which went into the final report. I got 110/A+ on the assignment.

  24. Balance taxes? by pz · · Score: 2

    I've never balanced taxes. Is this a new thing?

    Oh, you mean balance checkbooks and pay taxes. There's much better software to do that these days.

    And there are much better ways to teach programming. For a very long time there has been a movement to bring programming to the masses, as if, somehow, everyone would be able to write beautiful, intricate code to solve their most complex problems. Most people can barely match their clothing (note to the reading-impaired: that was hyperbole); why should we expect them to be able to write code?

    Writing programs requires clear, linear thought. It requires thinking in terms of structures and systems. The push in the greater population has been toward valuing non-linear thought (although that baffles me), so there's a big mismatch to overcome. Yes, there are plenty of graphical programming languages that reduce the need for precise syntax, but they only REDUCE it, not eliminate it, and they still require procedural thinking which, ultimately, presents an insurmountable difficulty for many people.

    Not everyone can or should be a programmer: Not everyone is a writer, Not everyone is a photographer, Not everyone is a painter. Sure, everyone should be given basic skills in writing, and perhaps in drawing or painting as a child, and so perhaps everyone should be given basic skills in programming, but beyond that, why? Not everyone is able to understand calculus; why should we automatically expect that everyone should be able to write Java, Python, or whathaveyou?

    --

    Put my fist through my alarm clock with its ding-dong death inside my ear. - The Blackjacks.
    1. Re:Balance taxes? by K.+S.+Kyosuke · · Score: 1

      Not everyone can or should be a programmer: Not everyone is a writer, Not everyone is a photographer, Not everyone is a painter. Sure, everyone should be given basic skills in writing, and perhaps in drawing or painting as a child, and so perhaps everyone should be given basic skills in programming, but beyond that, why? Not everyone is able to understand calculus; why should we automatically expect that everyone should be able to write Java, Python, or whathaveyou?

      Perhaps people should at least try it seriously on some level so that we could catch some precious talent that would otherwise go to waste.

      --
      Ezekiel 23:20
    2. Re:Balance taxes? by TuringTest · · Score: 1

      And there are much better ways to teach programming. For a very long time there has been a movement to bring programming to the masses, as if, somehow, everyone would be able to write beautiful, intricate code to solve their most complex problems.

      You probably already know how to program, and I think that's why you seem to miss the point entirely. ;-) "Programming for the masses" is like basic literacy/alphabetization, not like formal training in High Literature: its goal is not to solve complex problems with programming tools, just like the point of literacy is not that all people will be able to write poetry. It's that they can manage the very basic, trivial tasks on their own, without having to hire a scribe (for reading and writing) or developer (for programming) to do simple tasks like basic accounting, sending letters, or in the case of programming, building simple automation tasks - like setting an alarm or opening your garage's door when the right circumstances happen. Note how there is no universal system nowadays that the general public could use to create those two trivial examples.

      That niche is mostly served nowadays with apps for phones and tablets, which the end user can discover and use on their own from the app store to solve most common needs; but the developer is not totally removed from the equation yet, as even for really simple needs, the user is restricted to the subset of interactions that developers have created in advance, and the user can't build their own on top of them.

      Writing programs requires clear, linear thought. It requires thinking in terms of structures and systems.

      That's true of most current programming environments, but it's not an inherent property of what we call "programming" if understood in a general sense (that of creating new automated behaviours), specially when we restrict it to the basic tasks I'm talking about. Programming by example, case-based reasoning, procedural inference, constraint-based layouts... or even dexlarative markup languages are tools that allow creating some kinds of automations without using a procedural language nor learning an exact syntax.

      The field of End-user Development studies those tools in a scientific context, and has some achievements in their history. Many of these tools are limited in scope (they apply to special situations) and are not general-purpose tools; but some of these, like the spreadsheet and Hypercard, are Turing machines at their core and can ultimately be used for any programming task.

      The essence of EUD tools is not defined in terms of linear thought but in terms of semantics and inference of meaning - i.e. being able to make sense of the system as presented and use it to solve your current problems. All humans are good at sense-making, provided the tools are tailored to cover their needs and knowledge background. I've learned some research on semiotics applied to Human-computer interaction, and it shows how to study and build such tools. That is not the approach that is taught in common comp-sci curricula, though.

      There are plenty of graphical programming languages that reduce the need for precise syntax, but they only REDUCE it, not eliminate it, and they still require procedural thinking which, ultimately, presents an insurmountable difficulty for many people.

      True again, but again not an insurmountable problem. Information workers have managed to use Excel as a shared database with abstract datatypes and Outlook as a workflow management and collaborative creation tool, and as structured personal storage, all without learning how to create a single function definition. That's a Good Thing, though it would be better if they could use similar tools created specifically for those purposes.

      Sure, everyone should be given basic skills in writing, and perhaps in drawing or painting as a child, and so perhap

      --
      Singularity: a belief in the "God" idea with the "demiurge" relation inverted.
    3. Re:Balance taxes? by narcc · · Score: 1

      Ah, more "programming requires a special mind" bullshit. Back in the 80's, you couldn't throw a rock without hitting a kid under 12 who wrote computer programs as a hobby on their home micro. There were countless children's books on computer programming -- even one mentioned in this thread that changed the life of a young future Slashdotter. That's how difficult it is to learn to program.

      Look, I get it. You only have one skill, and you know how easy it is for others to pick-up. That's scary. The only reason people think you're smart or interesting is that you know how to write computer programs. Why, if we brought programming to the masses, you wouldn't be special.

      When you give non-programmers good tools, they do amazing things. (User jbolden has a cool story about that, which I'd love to hear more about.) You want to stifle that just to protect your ego?

    4. Re:Balance taxes? by weilawei · · Score: 1

      A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.

      - RAH

  25. Re:That's what college is for! by wonkavader · · Score: 1

    No, that's what trade school is for.

  26. We could probably write this in HTML5 today by Applehu+Akbar · · Score: 1

    But a more relevant question would be: can we devise a building-block language that solves today's real-world problems? Such a language should be (1) capable of solving simple problems easily for general users and (2) allow including complex 'blocks' for those willing to climb the learning curve it would take to include some highly specialized function in one's program.

    1. Re:We could probably write this in HTML5 today by zippthorne · · Score: 1

      So.. you want someone to invent LabVIEW?

      --
      Can you be Even More Awesome?!
    2. Re:We could probably write this in HTML5 today by Applehu+Akbar · · Score: 1

      I've been a geek for so long that I was once an actual LabView user. That was something like what I have in mind, but was too specialized for the lab environment.

    3. Re:We could probably write this in HTML5 today by Ford+Prefect · · Score: 1

      I experienced LabVIEW as part of standard software for a Lego Mindstorms kit. THE HORROR.

      --
      Tedious Bloggy Stuff - hooray?
  27. Re:That's what college is for! by methano · · Score: 3, Insightful

    This is nonsense. I learned a little programming back in chemistry undergrad when they decided to use x-ray diffraction calculations to teach us some FORTRAN. I've been programming here and there since. Some of it has even been useful. I wrote a number of HyperCards back in the day and really liked the environment. It was quick and easy to put together a nice little program for specific tasks. There was a low barrier to entry and it was easy to make useful things that you could never find an IT whiz to do for you.

    Here's the problem. It's a lot easier and more likely to happen that a chemist learns a little programming to get a job done than to try to teach chemistry to a programmer and get his management to approve him spending the time. If a project ever gets escalated to where "real' programmers are needed, the scientists can, at least, have realistic expectations and do a better job explaining the problem. I've helped with the design of data models, which greatly lowered a project's complexity, because I knew a lot more about how the data was used.

    I have a good knowledge of my limitations. I now have a pretty good knowledge of yours except that I don't know who you are.

  28. No, it's not time to do that. by Anonymous Coward · · Score: 1

    It wasn't just for beginners. HyperCard was used in the development of Myst.

  29. Re:No, it's not time to do that. by mcgrew · · Score: 3, Insightful

    Professionals with years or even decades of experience have enough trouble writing secure software.

    And just where do these "professionals" who can't write secure software get these years or decades of experience??

    It's even worse when they use "beginner-friendly" languages like PHP, Ruby (with Ruby on Rails), and JavaScript. These languages are totally shit, and end up promoting buggy, insecure code.

    I don't know PHP or Ruby, but javascript is in no way "beginner-friendly". I'd been coding in BASIC, assembly, xBase (various dialects), NOMAD, and a couple I can't remember (I'm getting old) for well over a decade when I needed javascript.

    Javascript is crap. Often useful and necessary crap, but still crap.

    When these amateurs try to write code in any sort of a business or professional setting, it usually ends up being the IT department or professional software developers who get to maintain the crap code in the end.

    It's true that someone who thinks he knows what he's doing but doesn't can really screw a project up, an idiot I worked with who thought he knew dBase almost cost us a ten million dollar Federal grant by removing some columns in some tables in an application I wrote. I was able to make it work anyway.

    Asimov got it right in Foundation; those who know little and are aware of their ignorance aren't dangerous, it's those who think they know but don't that are.

    But I was mostly self-taught, only taking classes after I'd been programming for years, and few of the classes taught me anything I hadn't already learned from reading hundreds of books on the subject and practicing.

    And we can't forget how these half-assed amateurs often start "contributing to" (a.k.a. destroying) open source projects. Thanks to them, we have disasters like GNOME 3, where instead of trying to make efficient, effective software, they just ended up trying to make a shitty, half-assed copy of their warped understanding of OS X.

    It's not that they're shitty programmers, it's that they're shitty designers, and the professionals at Microsoft are no better; Windows 8, anyone? And whose code is the least secure? Yep, your fellow professionals at Microsoft with their warped "understanding" of UI, just like the GNOME devs.

    We shouldn't promote the idea of them getting involved with software development. We should discourage it!

    No, we should develop easier to use tools. The languages and compilers you professionals are writing suck donkey ass.

  30. It is time to revive punch cards by youn · · Score: 1

    _ I had a joke about it but the punch line kind of writes itself
    _ no magnetic stripes so storage should last longer
    _ paper is bio degradable so it is more eco-friendly
    _ we have been too spoiled with code editors

    --
    Never antropomorphize computers, they do not like that :p
  31. No, context matters. by Rhys · · Score: 1

    I don't want a self-taught developer writing flight control, banking systems, or medical embedded systems code. I'd rather have someone formally trained doing that work. On the other hand, there's plenty of places where if the code doesn't quite work right I don't really care that much. From everything of the once-thriving online text based gaming community (the MUSH, MUCK, MOO, MUX, MUD, etcs) to simple web pages or even stupid phone apps, there's a place for "non-professional" programmers.

    Similarly, there is a place for non-professional carpenters -- my trained-programmer father has made every bookshelf in my folks house, a couple tables, has redone the 2nd story deck multiple times, and redone the roof (structural and laying shingles) on the horse barn on the back of the garage, and a bunch of brio-compatible track for me when I was ~4. He doesn't redo the main house roof (45 deg slope or more -- too steep), nor does he repoint the structural brick exterior (1920s house) or do plumbing when it involves sweating copper.

    He also taught me enough of it (I helped him on most of what I listed above as a teen) that I've done plenty myself; four bookshelves, two desks (one used bookshelves for legs, the other is just an oak plywood surface for a geekdesk base, but stained and varnished a nice deep brown), and one storage cabinet with removable shelves that just happen to be 60x90 LEGO studs in size. Oh and an exterior door on my own 1960s-era house -- that was worlds of fun since while you can order a door and frame to the right opening size, the way houses set doors into the house's wooden structure has changed since my place was built. That was a learning experience (doors are a pain in the ass) and I let professionals have the fun of the next exterior door that needed to be replaced -- who, by the way, cracked the trim worse than I did when they replaced it.

    Its about knowing what you know, what you don't, and what you should (or want to) call in a professional for.

    --
    Slashdot Patriotism: We Support our Dupes!
    1. Re:No, context matters. by Oligonicella · · Score: 1

      The opposite is true as well. I spent two decades in banking and ran across many programmers who couldn't for the life of themselves understand the needs and requirements involved. A programmer without the contextual information is just as dangerous.

    2. Re:No, context matters. by binarylarry · · Score: 1

      Riight because someone who went into massive debt to get a piece of paper is automatically better than someone with hours and hours of practical experience?

      --
      Mod me down, my New Earth Global Warmingist friends!
    3. Re:No, context matters. by gestalt_n_pepper · · Score: 1

      I don't want a self-taught developer writing flight control, banking systems, or medical embedded systems code. I'd rather have someone formally trained doing that work.

      I designed and wrote an automated testing system API for a seismic analysis and visualization software package. 4 people script using my API every day, and another administers the 60 virtual machines that run on the VMWare server environment I designed. She controls and monitors it remotely, using custom remoting software that I wrote.

      I have a degree in psychology.

      --
      Please do not read this sig. Thank you.
    4. Re:No, context matters. by tepples · · Score: 1

      But even more dangerous is a programmer's boss who refuses to explain enough contextual information about requirements when asked. "Just do it how you think it should be done" is fine after the requirements are set, but not before.

    5. Re:No, context matters. by St.Creed · · Score: 1

      It all depends on what they learnt and how they apply it. But I will take any of my former co-students as a programmer, over any self-taught programmer, when I can't judge their work in advance.

      The difference between someone who understands invariants and pre/post conditions for formal correctness verification, even without using it, and someone who has never even heard of the concepts involved, is huge. There are order of magnitude differences in algorithms for certain tasks, and if you don't even know that you can determine that sort of thing (and how) you're a lost case. Datamodelling is another area. Everytime I see programmers abusing the logical model, I cringe. Code first is a bad idea and with formal training you can avoid things like that.

      And I mean, the halting problem. Turing machines. If you don't know Turing machines, you won't understand the implication that at a fundamental level, all computer languages are the same. If you don't know lambda calculus, understanding what Linq does, is much harder.

      Etc. etc.

      Ofcourse, you can have brilliant self-taught people in the field, as in any field. It's just so very rare to encounter competent ones.

      --
      Therefore, by the (faulty) logic you're using, you're just a cow with a keyboard - osu-neko (2604)
  32. Re:Software industry has completely failed... by PPH · · Score: 1

    I wanted to simple do something cute like "Happy Birthday"

    #!/bin/bash
    echo "Happy Birthday"

    You can thank me later.

    --
    Have gnu, will travel.
  33. Hypercard could have been the internet by Camembert · · Score: 1

    Hypercard was incredible back then. If Apple had thought about integrating it with network features from the beginning, the internet might have looked a lot different.

  34. Re:No, it's not time to do that. by pubwvj · · Score: 1

    Snob.

    Are you really serious.

    Perhaps you're writing satire. Poor quality. Poor taste.

  35. Hobbyist programmers by CODiNE · · Score: 1

    From my own personal experience I just want to say if you enjoy programming and think maybe you'd like to do it as a career... Go for it.

    Every job type has a certain percentage of workers who are barely skirting by and somehow get paid for it. There's doctors who shouldn't be, lawyers, etc... There's also the elite that truly know what they're doing and are at a much higher level of skill.

    Believe me when I say most programmers are the former.

    The #1 most important thing IMNSHO is a continual desire to learn and improve. If you have that, you may start at the bottom but you will eventually become good or great at it.

    As a hobbyist you already seem to have that, just keep it up.

    Many "professional" developers do copy and paste coding, grabbing chunks of code off stackoverflow and not taking the time to understand them. They don't write test cases for their code, instead they patch it over and over whenever they run into an unexpected condition. Instead of reading through their code to spot the bug, they'll change random parts and attempt to run it over and over until they get lucky... Often leaving some of the unneeded changes in place causing more bugs.

    If you can avoid doing those things, you're probably better than half the guys out there. :-)

    So if you enjoy it, you can do it for a living, and maybe do it well.

    --
    Cwm, fjord-bank glyphs vext quiz
    1. Re:Hobbyist programmers by jemmyw · · Score: 1

      Yes indeed. I've interviewed many programmers, and I would say the majority I've interviewed can't actually write a small program effectively. Many of these are senior and have claimed to have held a team lead position. I can only assume they get by by programming only within a framework filling in the blanks, and with much copy and paste as you say.

      I interviewed someone just last week for a junior position who had some experience. I gave the task of turning a recursive algorithm that parses a tree, into a non-recursive form. This chap could write executing code just fine, without reference, but he just could not figure out the problem. When I gave a prod I thought he might get it, but then, when stuck again, he proceeded to try solving it by moving lines from one place to another. I let him try for 45 minutes!

      So yeah, if you can actually take a problem and write an algorithm to solve it in code then you're one step of ahead of many professional coders. Of course it's not the only important skill, and I've known at least one clever person hired because he was able to solve the tests very quickly, turn out to be not so great at actually producing code. Probably because a lot of programming in a job isn't interesting if it's that type of problem solving that really turns you on.

  36. The bigger problem... by pubwvj · · Score: 1

    The bigger problem is that Apple (and others) abandon software and make their OS incompatible with legacy software so that we can't continue using our old tools. If the software followed the API rules in the past it should continue working with the new operating system and the OS vendor should not abandon it. If they want to get rid of old APIs they should provide cross-recompilers for older software or emulation. There is a tremendous legacy of software that is lost because Apple and other companies change their OSs on a whim.

    1. Re:The bigger problem... by jbolden · · Score: 1

      Apple believes that long term legacy is a problem. They want users to migrate paradigms. They don't mind breaking software, to keep the ecosystem clean. Microsoft is far better about continuity. IBM even better than Microsoft.

      You want continuity you picked the wrong product.

    2. Re:The bigger problem... by ruir · · Score: 1

      Someone who affirms Microsoft supports continuity of business, clearly has not both understand the industry and Microsoft business model. Microsoft is all about disrupting your experience every odd year, to sell you new versions of software and more training. I also agree Apple is not in the continuity business, at least on the binary continuity business, however the paradigm is quite far different.

  37. Applescript & Automator by BartlebyScrivener · · Score: 2

    These don't count as simple tools for users to build mini programs? RD

  38. So, you're saying "Python"? by hot+soldering+iron · · Score: 1

    I ran into a "hypercard"-like app for the C-64 back in 1986, that involved you building a flowchart of your app, answer some basic questions, and it would generate the Basic code for it. It was pretty spectacular for the day. There are quite a few code generator programs available today, just get one that runs on Python and give it a snazzy GUI. There you go. A nice easy to understand app generator that's cross platform, multiple output languages, open-source, self-extending, etc. etc...

    You would spend more time on the design of the GUI, writing the help files, and creating tutorials, than anything else. The user wouldn't even have to know ANY particular language, just the logic they needed.

    But that's just my opinion. I just build stuff.

    --
    When you want something built, come see me. If you want correct grammar and spelling, get a F*ing liberal arts student.
  39. Let's go back to 'requirements' by david.emery · · Score: 1

    HyperCard combined three aspects: (1) A easy-to-assemble set of graphical/user interface components; (2) a simple (simplistic) database; (3) a quirky programming language.

    Possibly VB with Access provides a similar set of functions.

    We should be able to produce something that allows end users to do some development for themselves, while acknowledging this is not a production-quality tool, but no matter what, people will take prototyping systems and try to deploy them to production usage.

    I've used it for several different things, including catalog/library "decks", user interface mock-up with a bit of back-end semantics (for a system configuration function, to understand user requirements and usage models), and a potential front-end controller to a very simple 'robot'.

  40. Re:No, it's not time to do that. by godrik · · Score: 1

    CS grads seem to need a professor, hand-holding and a cookie in order to learn anything new.

    AH! Maybe that's what I need! Bringing cookies to my class. That's smart!

  41. Re:Uh... haven't you heard of LiveCode? by gslj · · Score: 3, Interesting

    LiveCode is great in many ways, and I really appreciate that it is now a free download, but it lacks one feature that really made a difference to people who were learning HyperCard. In Livecode, every object is its own layer. In HyperCard, there was a simple, useful distinction between the background layer and the card (foreground) layer. People quickly grasped how to make a picture or button show up on every card or just one. Now, if you google "livecode background layers," you're likely to get instructions to add a background to a single card. I hate to say it, but I don't think that LiveCode, even free, can build the same kind of community that HyperCard has...simply because of this choice. It's not a trivial difference.

    -Gareth

  42. Hypercard could have been the internet by alangmead · · Score: 1

    It did have network features, if by network you consider Appletalk. The code 'go to stack addressbok on machine "Andrew's Powerbook"' was valid Hypertalk.

  43. Um it has been revived by jbolden · · Score: 2

    It has been revived and it has a free / open source version: http://livecode.com/

    Far better than the original.

    1. Re:Um it has been revived by jbolden · · Score: 1

      It has an executable installer. I'm assuming that's mainly self contained.

  44. Desperately needed? Really? by Jeremi · · Score: 1

    I'd say the reason we don't see a lot of demand for Hypercard-like environments these days is, they aren't necessary anymore.

    Back in the Olden Days, if you wanted to accomplish something on your computer, and there wasn't an application available that met your needs, you might respond to that problem by writing one yourself. Hypercard could make that easier for you to do, if you weren't already an experienced programmer.

    These days the software market is much larger and more mature, so if you want to accomplish something on your computer, chances are very good that there is already an application that does what you want better than anything you could make yourself. So instead of spending a few days learning Hypercard and then designing and implementing a HyperCard stack, you just Google what you want to do, find five different applications that are ready to use (and probably free, or cheap), and pick one.

    So I don't think there is a lot of pent-up demand for a Hypercard-like language these days. People who want to learn how to program will continue to do so, and people who merely want to get a task done ASAP have plenty of premade higher-quality software to choose from. The "middle ground" of people who want to make an app without officially learning how to program has gone away.

    --


    I don't care if it's 90,000 hectares. That lake was not my doing.
  45. Re:Uh... have you even heard of LiveCode? by jbolden · · Score: 1

    I'm glad someone posted that. LiveCard is basically HyperCard.

  46. Applescript & Automator? by alangmead · · Score: 1

    I don't think Applescript and Automator bridge the gap between non-programmer and programmer as slowly and as fluidly as Hypercard did. A non-programmer could start using Hypercard as a simple flat file database without programming. The sample Addressbook etc. Hypercard stacks were perfectly usable and there was a large quantity of freeware and shareware stacks that (inherently) came with complete source code. If someone had just a small wish for how it behaved differently ("I wish the addressbook had a nickname field:) many could be added through the GUI tools without programming. At some point, they may wish for behavior that involved changes in code, if they reached that point, the code had a fairly strong mapping to the concepts they had learned so far (stacks, cards, backgrounds, fields, etc) that they may be able to suss out what the code was doing and figure out simple changes. Once doing a fair amount of modification of the existing code, some may choose to strike out on their own and create something new.

    Applescript and Automator seem to be more about simple automation of tasks. Which is a great power to give someone. ("Ugh, I hate doing this same drudgework every day|week|whenever_the_situation_bothers_me") but seems to me still a larger jump from non-programmer to programmer.

  47. LiveCode and Swift by jpellino · · Score: 1

    are the best current follow-ons to the HyperCard simplicity and utility.

    --
    "Win treats sysadmins better than users. Mac treats users better than sysadmins. Linux treats everyone like sysadmins."
  48. C is called C because it came after B by jpellino · · Score: 1

    and that's somehow OK? (puerile snickers at words aside...) Language naming isn't exactly highbrow technical stuff to begin with.

    --
    "Win treats sysadmins better than users. Mac treats users better than sysadmins. Linux treats everyone like sysadmins."
  49. You can pronounce it Coke by Overzeetop · · Score: 1

    But if it's spelled Koch it's going to offend a lot of people. ;-)

    --
    Is it just my observation, or are there way too many stupid people in the world?
  50. Re:That's what college is for! by Oligonicella · · Score: 1

    Other professionals aren't allowed to be self-taught, at least in the civilized world.

    You sir or madam, do not know what you are talking about as well as being pompous. As long as you can pass the required certification tests, many professions will grant you a license.

  51. scratch an itch by sdinfoserv · · Score: 1

    i disagree with premise that everyone can or even should code. Secondly, I also can't believe a software opportunity exists for an 'unfilled need' for some void existing almost 3 decades. Any place a need exists - and in many cases where no need exists - software erupts. In my job I so hated our project management software, I wrote one on my own time at home. The company had some very unique processes that traditional PM didn't flow correctly. My version was adopted immediately. The point being programmers write to scratch an itch. If an itch exists, someone will offer an option. That's how we're wired.

  52. Maybe that's the point. by koan · · Score: 1

    "Now you're either a user or a full-fledged developer, and the gulf is wider than ever,"

    --
    "If any question why we died, Tell them because our fathers lied."
  53. Re:No, it's not time to do that. by gestalt_n_pepper · · Score: 1

    The cookie was metaphorical, but criminy, whatever works. Just get me someone I can hand a task to and walk away.

    --
    Please do not read this sig. Thank you.
  54. Re:No, it's not time to do that. by aaaaaaargh! · · Score: 1

    Nice troll post. Just about only real distinction between a professional and a hobby programmer is that the former gets paid whereas the latter doesn't. I've seen just as much complete crap written by professionals than has been written by so-called amateurs.

    Besides, you're missing the point. Everybody should be able to program his computer in the way he or she likes and the tools should be easy to use and completely unrestricted. Nobody forces you to use someone else's program if you have no confidence in his or her abilities.

  55. Re:No, it's not time to do that. by rochrist · · Score: 1

    Aren't we elite. You realize that a lot of what was down on hypercode was done by domain experts to meet their very specific needs, stuff that would never, ever have been done otherwise. Right?

  56. Re:That's what college is for! by rochrist · · Score: 1

    Yep.

  57. Re:No, it's not time to do that. by rochrist · · Score: 1

    This is ludicrous. You've personally interviewed all self-taught programmers and can confidently assure us that none of them are aware of data structures or algorithmic complexity. I don't think so. I think you're blowing it out your ass.

  58. Re:No, it's not time to do that. by rochrist · · Score: 2

    LOL. It's hilarious how college educated "programmers" always get so defensive when this topic comes up. See how that works?

  59. Re:Software industry has completely failed... by rochrist · · Score: 1

    Fails the Cute Test.

  60. empower users without killing them by Tom · · Score: 1

    The real gap is something that will empower users without putting them into danger.

    Excel is an example of this approach gone wrong. If you've never been in a company that runs important business processes on spreadsheets, raise your hand. Kids and students, drop your hands. Not many left, are there?

    And yet, studies have shown that a large percentage of non-trivial spreadsheets contain errors.

    The difficult part in making tools is to make them so that users realize at which point they should call a professional. It's good if you can put a screw into the wall yourself or hang a picture on your own. But it's likewise clear to you that building a house is something you leave to experts, or at least get their advise on wall and floor strengths.
    Computers, sadly, are not so transparent. Unless the task involves higher math, too many people think they can program a quick sales database themselves in Access or something. Only when the ceiling does fall down do they realize there's an IT equivalent of structural analysis.

    --
    Assorted stuff I do sometimes: Lemuria.org
  61. Filemaker replaced Hypercard by drinkypoo · · Score: 1

    The idea of Hypercard begat Filemaker. A little more like a real database, a little less in the way of training wheels. Still really simple to bang out an app in. Still extensible. The way we did it was to make use of its serial or telnet capabilities (way back when) in order to talk to devices or machines.

    I realize there's snazzier stuff today but Hypercard didn't just vanish in a puff of logic without anything in between, before this Livecode thing I know nothing about, there was Filemaker. Love it, hate it (more likely) or feel indifferent, but it did more or less the same job as Hypercard. Sure, it was harder to do simple things, but it was easier to do the slightly more complicated things that people commonly needed to do.

    --
    "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
  62. Re:No, it's not time to do that. by Tom · · Score: 1

    So we shouldn't have easy-to-use tools for people to LEARN how to program?

    We have that, it's called Pascal.

    But no, we shouldn't give pseudo-programming tools into the hands of non-programmers for the same reason we don't put handgrenades with half the amount of explosives into the hands of non-soldiers so they can play around and learn a bit - it's dangerous.

    Get off your high-and-mighty "professionals are the only ones who can do things" box.

    Sorry, when it comes to software with real-world impact, professionals are the only ones who should be doing it. You wouldn't fly by plane if the aviation industries approach to piloting were like what you demand for software, would you?

    --
    Assorted stuff I do sometimes: Lemuria.org
  63. Re:No, it's not time to do that. by Tom · · Score: 1

    Hire from a better university. Good universities teach not just formal algorithms and language structures, but also programming methods and require practical applications to be submitted to pass the subject.

    The real problem with university and other formal education is that the setting is artificial and the task always has a solution. When I was teaching assistant back in university days, I took some perverse pleasure from breaking students applications, typically because they didn't do proper input validation or didn't check boundary conditions. I don't think they liked me very much, but if you look at some of the exploits out there you see this exact kinds of mistakes being made in the real world by people who never had to deal with someone intentionally trying to break their precious baby.

    --
    Assorted stuff I do sometimes: Lemuria.org
  64. Re:That's what college is for! by tepples · · Score: 1

    So in a regulated trade such as health care, how should one practice the trade before taking the certification test? For another, regulators often require a specific number of verifiable supervised practice hours, such as 50 hours of supervised driving on a learner's permit in Indiana. Good luck with that if you happen not to have a roommate who drives.

  65. Re:No, it's not time to do that. by LordLimecat · · Score: 1

    The fact that some professors dont give a crap and hand out "A"s like candy doesnt mean that theres not value in a formal education.

    How many of those self-taught people are familiar with the control structure theory that any program can be written using only selection, repetition, and concatenation? How many think that its not relevant, despite the fact that it actually gives rise to readable programs (as opposed to ones that are a mess of GOTOs and multiple entry / exit points)?

    You think it doesnt matter as long as the code does the job, and then you need version 1.1 All of a sudden you realize that the self-taught programmer doesnt really understand documentation, or how to craft readable code.

    Granted there are a lot of generalizations here-- but I've done the self-taught thing, and I've done the formal education thing, and I find myself wishing I had done far more formal education prior to writing large scripts; as I continue with an education, I realize how much code that I've written over my career was just bad because I did not follow some of the practices I would have learned in a CS class-- and how much better it was because of the little education I did have.

  66. CS and self-taught not mutually exclusive ... by perpenso · · Score: 1

    Obviously, you've never had to hire CS graduates. I can't tell you how many of these bozos who've learned in a "formal" setting can barely manage a coherent if/then statement, much less successfully complete even a small in-house application.

    There are people who go into a formal CS/CE program because they have a genuine interest in programming. There are also those who go into a formal CS/CE program because someone told them it is a good career path. While the later (career path) can be decent programmers the former (genuine interest) are the ones who tend to truly excel. The later tend to be both formally trained **and** self taught.

    Those with a genuine interest in CS/CE tend to learn a lot on their own. And a university setting **greatly** facilitates this. At the university there is an incredible density of like minded folks to learn from or in partnership with. Online and remote can be useful, but two or three in the same room is often better. Plus professors are actually useful, they are often sick of the "career path" type students as well and often are very supportive and encouraging of those with a genuine interest. Besides the like minded folks the university environment offers access to incredible hardware and software that might otherwise be unaccessible. Whenever I asked for access to some specialized equipment (ex workstations with licensed software normally not available unless you are enrolled in a particular class) the professor in charge would ask why and I was never turned away because my project was a personal one, just curiosity. Even professors in other departments were supportive. In grad school I was considering a CS research project that involved a submersible robotic vehicle. I talked to a mechanical engineering professor about the potential project and he was very generous with his time and supportive.

    One nice thing about supplementing genuine interest and curiosity with formal university training is that the formal training tends to be a well thought out somewhat comprehensive tour of important topics. Left to oneself the self-taught tend to focus on the more interesting or the more obviously relevant. However some boring and seeming no-so-relevant topics turn out to sometimes be surprisingly relevant and useful. At least that has been my experience, some classes I would never have selected on my own surprised me with their eventual value. While it is certainly possible that the self-taught can read and learn such a comprehensive set of topics at a university level this is exceptionally rare, incredibly rare. In 30 years I've worked with a lot of talented self-taught individuals but I've only met a handful who have the motivation to read and learn things at this level and over a broad range of topics purely on their own initiative.

  67. School of Business not Science or Engineering by perpenso · · Score: 1

    Obviously, you've never had to hire CS graduates. I can't tell you how many of these bozos who've learned in a "formal" setting can barely manage a coherent if/then statement, much less successfully complete even a small in-house application.

    If you are talking about some web based business app done in javascript then going to CS/CE grads may be gross overkill. Its probably better to go to a trade school with classes on web programming for that sort of stuff.

    Or if its a more involved business app look for a "programming" degree program in a University's school of business, not its school or science or school of engineering. At my university it was called "Computer Information Systems", it focused on software development for corporate and business needs rather than scientific and engineering needs as "Computer Science" and "Computer Engineering tend to do". Note that things will vary wildly from one university to another so you really need to look at the school and or classes, you can't make assumptions based on "Science", "Engineering", "Information Systems", "Information Technology" appearing in the program name. These are sometimes a bit arbitrary.

  68. Re:No, it's not time to do that. by ShakaUVM · · Score: 1

    >I can't tell you how many of these bozos who've learned in a "formal" setting can barely manage a coherent if/then statement, much less successfully complete even a small in-house application.

    I'm going to start teaching CS in January. My approach will be to have the students writing code every class, which will be automatically tested by code that I write for correctness. If they can't get it done in class, they have until the next class (48 hours later) to finish it.

    It is somewhat inspired by the code competitions I used to do. If a CS student can't write code to save his life, why is he taking a programming class?

    >Granted, most of the self-taught crowd is weak on specialized algorithms and data structures

    This is a bigger weakness than you think. Sure, some concepts like hashing and linked lists can be learned pretty quickly by an auto-didact, but the lack of formal training in discrete math means that their code all too often isn't correct. I can look at a recursive algorithm and immediately see when it was written by someone who never learned to do a proof by induction.

    Also, their understanding of big-O notation is often (but not always) weak, and they'll tend to just try to use the one or two structures they understand for everything, which leads to inefficient implementations.

  69. Re:No, it's not time to do that. by Lodragandraoidh · · Score: 1

    While, in principle I agree with you (I learned at a university that had several MIT PHDs in the computer science department - one of which was the head of the department - and later in my career when interviewing new candidates, and working with people from what I will call 'sub standard' programs - I saw first hand that all CS degrees were not equal) - I also realize that the people coming from the top university are going to gravitate to where the money is - meaning if you are a small company, or in a company that can't attract the top talent you will be stuck with what you can get.

    This situation isn't bound to change, so how do we deal with this? I think the solution should be multifold and systematic to have possibility of success:

    1. Every programmer shouldn't have to be a system developer; partition your developers into two camps: a very small group of system developers (for OS, building development tools, and embedded work as needed), and a very large group of what I will call 'application' developers (for applications end users will touch).

    2. Limit the tools your Application Developers have available to them. They shouldn't be able to shoot themselves, or their users, in the foot.

    3. Focus your System Developers on building tools and libraries for selected application class languages that do not allow Application Developers to reinvent the wheel for things that they shouldn't be - such as memory management and security (the aforementioned 'loaded guns'). Enforce standards for access to and use of the tools by the Application Developer group.

    4. To avoid having developers working on software that will only benefit one user - provide safe tools to allow end users to build their own simple applications (e.g. Hypercard - or other paradigms that are appropriate, above and beyond spreadsheets and word processing software). Once an application created in this way becomes popular enough - you have to option of translating it through your application developer team...or leave it as is. If you were smart when you built your (hypercard-like) tool - you allowed it be integrated with, or translated to other systems in safe ways - so that it can be shared with minimal impact/workload.

    If we don't find a way to something like what I describe, we will continue to suffer as we keep expecting all CS graduates/programmers to be equal. HR and Execs don't like this because they want all developers to be interchangeable widgets...but reality does not bend to policy.

    --

    Lodragan Draoidh
    The more you explain it, the more I don't understand it. - Mark Twain
  70. Re:No, it's not time to do that. by Tom · · Score: 1

    Firstly, small companies can easily lure talent if what they offer is interesting and their culture is appealing. I would much rather work a 100k job that is interesting in a good company than a 120k job that's boring in a faceless corporation with MBA culture. They'd have to offer maybe 150k and even then I won't be as motivated. Lots of geeks are motivated by interest more than by money.

    Secondly, yes we need to make a difference between software architects and programmers.

    --
    Assorted stuff I do sometimes: Lemuria.org
  71. Re:That's what college is for! by CauseBy · · Score: 1

    I studied computer science in college but I didn't learn to code until I worked in private practice. This is similar to learning legal theory in law school but learning how to practice law in private practice.

  72. HyperCard? Try Zoomracks, the real Slim Shady by JeremyHolloway · · Score: 2

    As always, the tech community collectively forgets about a software product type that existed on the Atari ST before it did on the Mac platform. Zoomracks predates Hypercard and it was patented. The author settled later with Apple over it and then the tech community obviously forgot about it.

  73. DIVA Videoshop by Anonymous Coward · · Score: 1

    The AVID video editing empire still dominating the video world was born as a HyperCard stack and was one of the best editing programs anywhere! When the guy went into the big time he reversed the name DIVA and it became AVID (and no longer HyperCard but it still revolved completely around Quicktime which was not just a file format, it was a massive video library with a larger codebase than windows 98.)

    I never created with HyperCard; however, I knew it was crazy powerful.

  74. re: Myst by King_TJ · · Score: 1

    I actually never knew that about Myst before.

    I knew it was a Mac title originally, but I only owned the Windows version on CD. Pretty sure that one was no longer using HyperCard technology (though I remember it did use the Quicktime for Windows player and the QT videos).

  75. WWW by AndyCanfield · · Score: 1

    In 1989 my colleague, Loranne Dayton, showed me Hypercard. On this Apple computer you had 'cards' (pages), and they could contain links to other pages on that same machine.

    I was too stupd to realize the imprtance of what she was showing me. Extent the link with a computer name (from the Internet), and we would have had the World Wide Web, several years before it was invented by CERN. She was years ahead of me.

    Did Hypercard die? You're using it's grandchildren, IIS and Apache and Firefox and Internet Explorer, to read this web page today. Hypercard on a global scale.

  76. Re:No, it's not time to do that. by perpenso · · Score: 1

    >Granted, most of the self-taught crowd is weak on specialized algorithms and data structures

    This is a bigger weakness than you think.

    As someone with 30 years of software development experience I can't emphasize strongly enough that some of the biggest mistakes are made in algorithm and data structure selection and design.

    To motivate your students share this from a 10+ year video game developer. When they apply for a job at that Triple-AAA video game development studio they will be tested. The test will not center on the intricacies of OpenGL and other topics / technologies that they expect. They will find the greatest amount of that testing will have to do with algorithms and data structures. It is in algorithms and data structures where the performance killing and RAM consuming mistakes occur. Video games have little tolerance for such errors. If you don't display sufficient knowledge of algorithms and data structures you will not be considered regardless of how pretty an OpenGL demo you put together.

  77. Re:Uh... haven't you heard of LiveCode? by Anonymous Coward · · Score: 1

    LiveCode doesn't have background layer, but you can select any set of objects and make them be a group that acts like a background. That makes it possible to reproduce HyperCard's backgrounds, but is more flexible.

  78. HyperCard was a fantastic prototyping tool. by wezelboy · · Score: 1

    HyperCard was awesome. It was fairly easy to create a fully functional gui application that someone might pay money for- possibly without writing a line of code. My first serious application was in HyperCard. HyperCard was dog-ass slow though.

    I think Apple killed HyperCard because of the performance issues, and because it didn't fit into Jobs' vision. Once they settled on NeXT for OSX, the NeXTStep environment had a lot of cutting edge rapid development features but with the speed of compiled code. They didn't want to develop two separate environments, so HyperCard got the axe.

    It is too bad. I would love to see HyperCard alive again.

  79. Hypercard Could Replace the GUI by shreader · · Score: 1

    In computer timelines, I know that Hypercard is ancient. The software wasn't much bigger that 800K bytes and ran from a floppy disk on Mac OS System 6. Hypercard was essentially cancelled by Apple Computer because, when Mac OS System 7 came out, Apple wanted extreme tight control over the graphical user interface of the computer. Apple wrote the "Human Interface Guidelines" and Hypercard broke all the rules. A neat trick with Hypercard of 1987 was, if it was auto booted, it could replace your graphical user interface (GUI) on your computer, and because it was full screen, the menu bars and icons would disappear. Image being able to draw the GUI of the computer with a paint program, which was included in Hypercard, and create hyperlinks to files, applications, and basic interface functions. If one created text fields, a basic database form is created. This is why Hypercard was so cool and ahead of its time, way before the invention of the commercial Internet. As a computer person, listening to computer users, the big complaint over and over again is the GUI forced on them. If the original Hypercard were available today, and you didn't like the "Start Menu" missing or the font change from iOS7 to iOS8, imagine being empowered to change those features, on your own. I have no disrespect for current versions of Supercard and Livecode. I am not familiar with the 2014 versions of those products.

  80. AmigaVision for the rest of us by kriston · · Score: 1

    I think that AmigaVision is HyperCard for the rest of us.

    If anything could or should be re-released, it's AmigaVision.
    http://en.wikipedia.org/wiki/A...

    --

    Kriston

  81. LiveCode is HyperCard for 21st Century by AlejandroTejadaC · · Score: 1

    Please, visit http://livecode.com/download/ and download the most recent version of LiveCode Community Edition (Open Source) for your OS: (Linux, MacOS X, Windows) If you visit this webpage: http://downloads.livecode.com/... you will find all downloads available, including stable public releases, release candidates and developer previews. Choose one of the stable releases and install it in your computer. Then, you will understand why many developers still cherish and remember fondly, it's first encounter with HyperCard. You could download Livecode's source code from Git: https://github.com/runrev/live... Learn about Livecode's quality controls at: http://quality.runrev.com/ By the way, HyperCard found it's way to many platforms in the form of clones: For Commodore Amiga, there was UltraCard (later renamed Foundation): http://www.dreamtimestudioz.co... For Linux, there was MetaCard (today Open Source LiveCode): http://www.metacard.com/ For Windows, Oracle Media Objects: http://en.wikipedia.org/wiki/O...

  82. Re:Uh... haven't you heard of LiveCode? by hawk · · Score: 1

    >People quickly grasped how to make a picture or
    >button show up on every card or just one. Now, if
    >you google "livecode background layers," you're
    >likely to get instructions to add a background to a
    >single card.

    You open the group inspector, and click the "backgroundBehavior" box.

    That's it. Done.

    hawk

  83. Re:No, it's not time to do that. by ShakaUVM · · Score: 1

    Will do. Thanks for the input!

    I plan on using some common computer science job application questions as homework assignments, like Fizzbuzz. A friend of mine applied to Facebook and was asked to test a string for being a palindrome, create a linked list class, and write a method to reverse it.

    You do have any suggestions for such homework assignments?

  84. Re:No, it's not time to do that. by perpenso · · Score: 1

    Evaluation is done on coding style and the thoughts of the implementor as much as getting a correct solution.

    Consider a simple problem. Detecting if a point is in a rectangle. The textbook answer is quite simple. The game implementation is not necessarily simple. Keep in mind that textbook answers have lots of preconditions, random data, neutral circumstances, etc. Actual implementation may not, leverage any knowledge of the data or circumstances. For example what is the likely case, point inside or outside; is the rectangle relatively small compared to the screen. Like the SAT pay attention to the details of the question. If the question states that the point is a missile and the rectangle is an enemy unit then the missile probably spends more time outside the rectangle than within, so optimize detection for the miss case. Also since the rectangle represents a unit it will be relatively small compared to the screen. Now think about the screen, is it wider than taller. Probably, if so further optimize your test for misses by comparing against the vertical edges first. Assuming firing takes place from any angle. The really important thing here is to show that you were thinking beyond the textbook and leveraging information about data and circumstances. Such thinking should be explained in comments.

    So you've implemented some special purpose variant of an algorithm. You might want to implement the general case too. You might want to add a unit test that verifies that the special purpose case yields correct results for specific known inputs, edge cases etc, and that it matches the results of the generic implementation for some appropriate number of randomly generated cases. Of course doing so would be more appropriate it the evaluation is not timed. But if you finished early and have checked your work ...

    When implementing code consider performance. For example if you need to test the distance between two points a classic implementation might use the distance formula, desired_dist >= sqrt((x2 - x1)^2 + (y2 - y1)^2). Note we don't need the actual distance and we can square both sides, desired_dist^2 >= (x2 - x1)^2 + (y2 - y1)^2, replacing a square root operation with a multiply operation. Be sure to comment the code when doing something like this.

    Did I mention that comments should be explaining your motivations, what you are thinking, what you are trying to accomplish? Not simply restating in english what code does.

    Knowing how to implement data structures like a doubly linked list would be a good idea, however knowing how to do so in a multithreaded environment is even better. It might be a bit beyond what is expected for students in a lower division class but it would definitely be important at the time of a job application. Perhaps a brief mention in class might be useful, a little hand waiving and telling them to call placeholders lock() / unlock() would be fine. No need to have them actually implement calls to pthreads if their prerequisites don't warrant it.

    So, an overall theme. Questions may be less about "regurgitating" the correct answer and more about showing how you think about problems and how you implement solutions, and how well you leverage any additional information available.

    It wasn't at a game company but I once had a question during an interview that was very illustrative of what I'm trying to get across. The question listed 6 sorting algorithms and asked for the run time complexity. I answered bubble sort and qsort and then wrote "I own Knuth vol 3 Sorting and Searching so I don't have to memorize this sort of trivia". After this written test the project lead asked why I thought this question a "trivia question". I explained that the textbook run time complexity answers assume random data, and that if your data is not random the run time for these algorithms can change wildly. One algorithm may be the best choice for random data, another for mostly sorted data and still another for mostly unsorted data. I go

  85. Re:No, it's not time to do that. by perpenso · · Score: 1

    Moments after my first post I had an idea. Some of my favorite homework assignments or lab projects were those that were steps towards a larger whole.

    Maybe an A* based pathing implementation for a game should be the final result. Individual assignments steps along the path to this end result.

    Arrays could implement static objects (obstacles) on a map.
    Link lists could implement temporary objects (units, subject to destruction when they fire upon each other).
    Maybe sort units in a linked list based on their position with respect to a line of movement, ex moving up sort by y position. As they move into range of enemy units those units at the front of the linked list are the first to come under fire, usually. When hit, destroyed, removed from list. List shorter for next round of fire.

    Since its a class project keep things simple. Perhaps something similar to 1970s/80s tank arcade games. The map is a grid. Motion is only up, down, left, right. Obstacles are like walls, filling in an entire grid element or leaving it open. Units take up one grid element each.

    Profile performance, before and after some improvement. Textbook A* vs modified A* using special info. Linked list search with and without sorting in direction of movement.

    Speaking of profiling, that is something very important to mention in an interview. Attempts to optimize must be based on profiling. Both to make sure one is optimize the code path where cpu cycles are being spent and to confirm that a modification to the algorithm if in fact helping.

    I'm not sure if a good fit can be found between the class topics and the components of such a minigame but it might be something worth taking a quick look at.

  86. Re:No, it's not time to do that. by ShakaUVM · · Score: 1

    I can use some of that. I'm teaching 1st and 2nd semester CS in January, and I don't want to overload them too much with philosophy of programming, but I plan on having code reviews be 20% of their grade. They'll have to come up in front of the class and talk about why they made the design decisions they did, and other students can earn extra credit by finding bugs and pointing out questionable decisions.

    But yeah, I was planning on doing a maze solver, so maybe a A* solver might be a little more useful. Thanks for the ideas!