Subject: "Look, Ma! No code!"

From: Shlomi Fish <[email-masked]>
Date: Thu, 24 Nov 2005 12:43:46 +0200

Included here is a conversation that took place on the Freenode IRC network 
between a Guy named Darien, me and other people. It all started when he made 
the claim that on Mac OS X he can create useful applications without writing 
any code. I'll let you be the judge of who's right:

Regards,

	Shlomi Fish

    <rindolf>  Darien: do you enjoy programming?
     <Darien>  rindolf: I enjoy solving problems
    <rindolf>  Darien: but do you enjoy the act of writing code? Sitting
               in front of an editor, typing chars, refactoring, etc.?
     <Darien>  rindolf: nope
    <rindolf>  Darien: I see.
    <rindolf>  Darien: well, I do.
     <Darien>  rindolf: that's why I'm enjoying developing on OS X so
               much
    <rindolf>  Darien: I mean I like programming.
    <rindolf>  Darien: why's that?
     <Darien>  there's a lot of mindless crap that you just don't have
               to code
    <rindolf>  Darien: heh.
   <Windrose>  Darien: would it be appropriate to say that you enjoy
               solving problems, but only with your favourite tools?
     <Darien>  Windrose: I enjoy solving problems period
     <Darien>  Windrose: I hate implementing the solutions a lot less if
               I can use my favourite tools
    <rindolf>  Darien: I enjoy throwing a lot of Perl scripts for doing
               things. (Some of them I doubt exist even in Mac OS X)
    <rindolf>  Darien: or Bash scripts.
     <Darien>  rindolf: for example, in OS X, I could make an
               application that stores e.g. an employee database,
               including relations, images, etc., without writing a line
               of code
    <rindolf>  Darien: I see.
     <Darien>  and have it output as either a binary file, an XML file,
               or an SQLite database
    <rindolf>  Darien: and what happens if I need to extend it? Change
               the interface? add another table, etc?
     <reisio>  Darien: does your stuff work in Darwin?
     <Darien>  rindolf: then you do so and it continues to work
    <rindolf>  Darien: what if I want another XML format?
     <Darien>  rindolf: why does it matter the format of the XML?
    <rindolf>  Darien: is this some kind of Accesss thingaling.
     <Darien>  rindolf: nope
     <Darien>  it's an actual honest-to-god program
    <rindolf>  Darien: is it a wizard?
     <Darien>  using OS X's CoreData library
     <Darien>  no
     <Darien>  let me find the tutorial, it's easier to see
    <rindolf>  Darien: Access is an actual honest-to-god program.
   <Windrose>  While I dislike it, Access /is/ a program y'know ...
    <rindolf>  Windrose: I've seen one amazing thing created in Access.
     <Darien>  rindolf: yeah, but what you *create* with Access is a
               document
     <Darien>  http://cocoadevcentral.com/articles/000085.php
     <Darien>  this creates a separate, document-based application, with
               Open, Save, Save As..., and New
    <rindolf>  Darien: it is a GUI thingy.
    <rindolf>  Darien: I can write something exactly like that in Perl.
     <Darien>  rindolf: the point is that I don't *have* to write
               something
    <rindolf>  Darien: but it would be faster to adapt my Job Tracker to
               do that, and it will be web-based.
    <rindolf>  Darien: will work on lynx!!
     <Darien>  rindolf: so what?
    <rindolf>  Darien: yours only work on Crap OS X.
     <Darien>  rindolf: so? I only use OS X
    <rindolf>  Darien: I -don't-!
     <Darien>  rindolf: so what?
     <Darien>  just because YOU don't use the same OS as I do doesn't
               mean I can't write programs for my OS
    <rindolf>  Darien: mine would be web-based and will be usable by
               anoyne.
    <rindolf>  Darien: didn't say that.
     <Darien>  rindolf: so what?
    <rindolf>  Darien: but I write portable programs.
     <Darien>  rindolf: good for you
   <Windrose>  No, but if you implement it in, say, Perl, it has a
               larger probability of being portable.
 <[bn]ennoia>  in perl?
     <Darien>  I honestly don't see what *any* of this has to do with
               *anything*
 <[bn]ennoia>  portable programs?
     <reisio>  Perl
    <rindolf>  [bn]ennoia: yes.
 <[bn]ennoia>  How is Perl ultra-portable?
   <Windrose>  [bn]ennoia: an excellent choice for portability, yes.
    <rindolf>  You can write portable programs in C, for that matter.
     <reisio>  [bn]ennoia: yes, virtually all operating systems that are
               worth using have perl
 <[bn]ennoia>  What about windows?
    <rindolf>  [bn]ennoia: there's Perl for Win32.
     <reisio>  Windows can have perl
 <[bn]ennoia>  wierd
   <Windrose>  [bn]ennoia: Perl exist (ActiveState)
    <rindolf>  [bn]ennoia: and for VMS, and for Symbian...
     <Darien>  can you build a GUI interface that works on OS X,
               Windows, and Linux?
 <[bn]ennoia>  probably, using gtk
     <Darien>  ah, but GTK isn't reliably portable
      <kirun>  Qt is :)
 <[bn]ennoia>  how about qt?
     <reisio>  GTK isn't reliably portable? :p
   <Windrose>  [bn]ennoia: as far as I know, yes.
     <reisio>  compared to what?
     <Darien>  QT still doesn't make it easy to target OS X
       <Neo`>  Capso: why not :P
     <Darien>  and even if you do, it won't work the same as a native
               application
     <Darien>  and users won't want to use your program because of that
   <Thunder->  wxwidgets.
     <reisio>  Darien: Qt
      <kirun>  Qt can do a much better impression of native than GTK can
     <reisio>  they can both do it
     <Darien>  yeah, but it's still not *good*
 <[bn]ennoia>  Gaim looks pretty native on windows
   <Thunder->  wxwidgets actually is native on all 3 platforms :P
   <Thunder->  if you count gtk as native on *nix ;)
   <Windrose>  Darien: it's fine. As long as all you want to do is
               create an application that looks good on, what was it,
               Cocoa, then there is no problems.
     <Darien>  yeah, but it's not going to work/feel the same on OS X as
               an actual native program
     <Darien>  Windrose: yes, this is exactly my point
 <[bn]ennoia>  Vendor Lock in is fantastic!
     <Darien>  idiots
   <Thunder->  Darien, it is if you make the proper concessions in your
               ifdefs :P
 <[bn]ennoia>  why are we idiots, because we don't use a mac? :\
     <Darien>  you're idiots because you think that writing for a
               particular platform is a bad idea
   <Windrose>  [bn]ennoia: no, because we don't agree with his personal
               opinion.
     <Darien>  I can't think of any cross-platform app that actually
               works/looks nice on three platforms
 <[bn]ennoia>  oh
 <[bn]ennoia>  I'm a total idiot then
     <reisio>  writing for a proprietary OS is a very bad idea
 <[bn]ennoia>  I don't agree with a lot of peoples opinions
     <Darien>  and yet somehow you're all claiming that writing
               something in perl is better than writing for a specific
               platform
 <[bn]ennoia>  Hey, I don't even like perl
     <reisio>  if the company goes under all your work amounts to
               bullshit :p
 <[bn]ennoia>  stop generalizing
     <Darien>  Windrose: you know, ops trolling is really bad form
 <[bn]ennoia>  bitwise looks cool
   <Windrose>  Darien: yes. Luckily, I don't. It is called "sarcasm",
               and I am sorry if that escapes you.
     <Darien>  Windrose: oh yes, beacuse you sounded *oh so sarcastic*
      <Capso>  It escapes just about everyone -- on IRC.
      <Capso>  Darien: You can hear Windrose speak?
   <Windrose>  'tis your problem, Darien; just as is your personal
               opinion. Do you notice that I've not called /you/ an
               idiot?
    <rindolf>  Darien: you might not need to write a single line of
               code, but you have do a lot of clicks, and write texts.
               It's the same thing.
     <Darien>  rindolf: not really, no
    <rindolf>  Darien: how does your application magically knows which
               fields you want it to have?
     <Darien>  rindolf: actually it can, yes
    <rindolf>  Darien: does it read your mind.
     <Darien>  and then I can adjust them as I need
    <rindolf>  Darien: does it have presets?
     <Darien>  rindolf: no, you write a schema and then it's done
    <rindolf>  Darien: _write_ a schema.
    <rindolf>  Darien: how do you write a schema?
     <Darien>  rindolf: yeah, which is hardly any typing at all
    <rindolf>  Darien: "_hardly_ any typing at all"
     <Darien>  rindolf: as opposed to perl?
     <Darien>  give me a break
    <rindolf>  Darien: so you agree that you need to select some stuff.
     <Darien>  rindolf: you click the + button to add a new schema, then
               in the next list you click the + and put in the name of
               the field, the type, any limits you want, etc.
    <rindolf>  Darien: Perl involves some typping.
     <Darien>  rindolf: you don't have to write any code
     <Darien>  perl involves a lot more typing
    <rindolf>  Darien: at the first time. Then you can re-use stuff.
     <Darien>  rindolf: I give up
    <rindolf>  Darien: and Mac OS X involves a lot of pesky mouse
               clicks.
     <Darien>  this conversation is pointless
    <rindolf>  Darien: and my Perl code can be accessed from a VT-100
               terminal running lynx.
     <Darien>  rindolf: I don't care
 <[bn]ennoia>  rindolf: what is your point, exactly?
 <[bn]ennoia>  what app is darien building anyway?
     <Darien>  rindolf: you need to understand that NOT EVERYONE NEEDS
               THEIR PROGRAM TO RUN EVERYWHERE, ALL THE TIME, UNDER ANY
               CIRCUMSTANCE EVER POSSIBLE
    <rindolf>  [bn]ennoia: my point is that my code is more accessible,
               more portalbe, and not much more work to perform.
     <reisio>  Darien: it'd be nice if it could just run outside of OS
               X, though
 <[bn]ennoia>  rindolf: what code?
     <reisio>  Darien: even just Darwin would be nice
            *  Darien done
    <rindolf>  [bn]ennoia: my _Perl_ code.
 <[bn]ennoia>  for what?
    <rindolf>  [bn]ennoia: haven't you been following the conversation.
 <[bn]ennoia>  sure, if you want to call it a conversation

---------------------------------------------------------------------
Shlomi Fish      [email-masked]
Homepage:        http://www.shlomifish.org/

95% of the programmers consider 95% of the code they did not write, in the
bottom 5%.