Slashdot Mirror


Pike 7.6 Released

An anonymous reader writes "Today version 7.6 of the Swedish programming language Pike was released. Some of the noteworthy additions are support for the Bittorrent protocol, the OBEX protocol (to communicate with cellular phones), IPv6, PGP and Bz2. If you want to beat the crap out of your Python/Perl program speedwise, try porting it to Pike..."

67 comments

  1. Someone please explain to me.. by Hanji · · Score: 3, Insightful

    How a Language can support the BitTorrent protocol.

    --
    A Minesweeper clone that doesn't suck
    1. Re:Someone please explain to me.. by arhar · · Score: 3, Informative

      For example, if Java supported BitTorrent, it could look like this:

      BitTorrent torrent = new BitTorrent();
      torrent.get("Star Wars Episode 3.avi"); ...

    2. Re:Someone please explain to me.. by Vaevictis666 · · Score: 4, Informative
      BitTorrent support can be added as a module, built-in functions, etc.

      It's the same as how PHP supports the ftp protocol.

    3. Re:Someone please explain to me.. by Profane+MuthaFucka · · Score: 1

      That's simple. Here's an example:

      10 input $fname
      20 bittorrent $fname, "wares.exe"
      30 goto 10

      --
      Fascism trolls keeping me up every night. When I starts a preachin', he HITS ME WITH HIS REICH!
    4. Re:Someone please explain to me.. by shaitand · · Score: 1

      Built in functions maybe, just adding a lib that someone has written to talk to bittorrent and claiming the language now supports something which anyone could have written a lib for at any time is pretty lame imho.

      You could claim perl supports (take your pick, there is a prewritten module for EVERYTHING). But it would make more sense simply to say perl is a complete programming language (meaning if it's software, you can do it).

    5. Re:Someone please explain to me.. by Anonymous Coward · · Score: 2, Insightful

      The point isn't that anyone could have, but that someone actually did. Anyone could have discovered America, but it was Cristopher Columbus who did. :-)

    6. Re:Someone please explain to me.. by Leif+Stensson · · Score: 1

      I'd say it depends on context and packaging. If the basic distribution of the language includes a library for something, it makes sense to say that it's included in the language. If you have to download a separate library and install it to get the functionality, it doesn't make sense to say it's included in the language. With Perl, you can download a library supporting almost anything, but only a limited number of things are included in the standard distribution of Perl. It's all a matter of whether you can count on the thing being there or not, in a typical installation.

    7. Re:Someone please explain to me.. by Anonymous Coward · · Score: 1, Funny

      I had not known PHP supported the File Transfer Protocol protocol. FTP protocol transfers occur via your NIC card. I I wonder if that's the protocol used in ATM machines, you know, when you put your PIN number in?

    8. Re:Someone please explain to me.. by shaitand · · Score: 0, Offtopic

      First, a bittorrent library hardly is on the level with discovering a continent.

      Second, Christopher Columbus didn't discover North America, this is a common Myth sadly propogated in the lower grades in school and then generally retaught in high school... yet another example of our piss poor educational system.

    9. Re:Someone please explain to me.. by Marillion · · Score: 1
      But that's not Java. That's a Java Library - pardon me class. And probably a package or two. In a strict sense, the Java language wouldn't change one iota if javax.bittorrent was added as a standard package.

      This really got to the heart of Sun's Vison of Java vs. Microsoft's Vision of Java. Microsoft looked at Java and said, "Nice Language," and proceeded to create wrappers for their Windows platform and called it a "Good Thing." Sun said, "A pox upon thee! For thou hast strip'd the soul from Java!" (they also hired all the lawyers instead of killing them, but that is another matter.) The "soul" of Java, as Sun would see it, it it's platform neutrality. The heart of the platform neutrality is the standard packages. Anything that begins java.* or javax.* is part of the standard packages.

      --
      This is a boring sig
    10. Re:Someone please explain to me.. by Random+Frequency · · Score: 1

      pike is also a really huge class library, like java.

    11. Re:Someone please explain to me.. by DAldredge · · Score: 0, Offtopic

      Then who did?

    12. Re:Someone please explain to me.. by matithyahu · · Score: 0, Offtopic

      First the 'Native Americans' via landbridge
      then the phoenicians,
      then the vikings,
      then the chinese
      and then Christopher Columbus
      Sorry I don't remember the dates but you should look it up anyways

    13. Re:Someone please explain to me.. by DAldredge · · Score: 0, Offtopic

      I had to ask, this being /. I was expecting an answer like Bob the Caveman from Mars. :->

    14. Re:Someone please explain to me.. by JLyle · · Score: 2, Funny
      Then who did?
      Al Gore.
    15. Re:Someone please explain to me.. by Anonymous Coward · · Score: 0

      Uh... And, probably, the Irish, somewhere just a tiny bit before viking times.

  2. How much faster? by EnglishTim · · Score: 3, Interesting

    The poster implies that Pike is faster than perl and python, but by how much? A little extra speed does not in general outweigh the benefit you get from the large libraries that perl and python have.

    Why would someone want to use pike rather than a better-known langauge?

    1. Re:How much faster? by mykdavies · · Score: 2, Informative

      The language shootout page gives an idea - it's up there with Java!

      --
      The world has changed and we all have become metal men.
    2. Re:How much faster? by wonkavader · · Score: 1

      Huh? Looks very mixed to me. looking at just a few examples, while it seems consistently better than perl (except in regexp, where perl is very fast), it's not up to java par.

      Looks like a minor speed increase to me.

      But then, I'm looking at a shootout from 2001. Have things changed?

    3. Re:How much faster? by Anonymous Coward · · Score: 3, Informative

      Things have changed quite a bit, still a bit behind java though (see this more recent shoot out); OTOH I hear a *lot* has happened between 7.4 and 7.6.

      The biggest nicety with pike is not the speed though .. it's the way of writing code. It's just lovely.

    4. Re:How much faster? by Anonymous Coward · · Score: 1, Informative
      Rerunning parts of the shootout with recent versions of the most interesting languages gives this for me (do view source for proper formatting):
      row 1: ackermann 8
      row 2: ary3 7000
      row 3: fibo 32
      row 4: hash 1000000
      row 5: hash2 200
      row 6: heapsort 100000
      row 7: lists 128
      row 8: methcall 1000000
      row 9: nestedloop 20
      row 10: objinst 1000000
      row 11: random 1800000
      row 12: sieve 1000
      row 13: strcat 5000000

      Java PHP Perl Pike Python Ruby TCL
      1: 4.13 12.72 4.89 0.61 4.55 9.32 Failed (ackermann)
      2: 1.69 11.87 4.85 1.38 3.06 8.61 14.88 (ary3)
      3: 2.90 12.09 6.69 1.44 4.27 6.96 11.57 (fibo)
      4: 6.85 5.92 5.57 4.71 3.69 17.90 7.83 (hash)
      5: 7.15 4.95 3.98 2.28 2.93 3.98 5.11 (hash2)
      6: 1.53 8.59 3.57 1.12 2.54 6.29 8.34 (heapsort)
      7: 5.54 Missing 3.21 2.76 2.06 2.43 27.30 (lists)
      8: 2.18 Missing 6.70 2.15 4.68 3.47 Missing (methcall)
      9: 7.30 Failed 17.92 0.90 13.52 35.70 34.25 (nestedloop)
      10: 3.65 Missing 13.08 3.34 5.68 6.19 Missing (objinst)
      11: 1.99 5.81 2.33 2.30 2.94 5.96 5.85 (random)
      12: 6.59 Failed 12.27 4.66 9.77 18.19 50.58 (sieve)
      13: 3.19 4.63 2.30 1.78 4.46 3.73 7.05 (strcat)
    5. Re:How much faster? by Anonymous Coward · · Score: 5, Informative

      Rerunning parts of the shootout with recent versions of the most interesting languages gives this for me (do view source for proper formatting):

      row 1: ackermann 8
      row 2: ary3 7000
      row 3: fibo 32
      row 4: hash 1000000
      row 5: hash2 200
      row 6: heapsort 100000
      row 7: lists 128
      row 8: methcall 1000000
      row 9: nestedloop 20
      row 10: objinst 1000000
      row 11: random 1800000
      row 12: sieve 1000
      row 13: strcat 5000000

      Java PHP Perl Pike Python Ruby TCL
      1: 4.13 12.72 4.89 0.61 4.55 9.32 Failed (Ackermann)
      2: 1.69 11.87 4.85 1.38 3.06 8.61 14.88 (ary3)
      3: 2.90 12.09 6.69 1.44 4.27 6.96 11.57 (fibo)
      4: 6.85 5.92 5.57 4.71 3.69 17.90 7.83 (hash)
      5: 7.15 4.95 3.98 2.28 2.93 3.98 5.11 (hash2)
      6: 1.53 8.59 3.57 1.12 2.54 6.29 8.34 (heapsort)
      7: 5.54 Missing 3.21 2.76 2.06 2.43 27.30 (lists)
      8: 2.18 Missing 6.70 2.15 4.68 3.47 Missing (methcall)
      9: 7.30 Failed 17.92 0.90 13.52 35.70 34.25 (nestedloop)
      10: 3.65 Missing 13.08 3.34 5.68 6.19 Missing (objinst)
      11: 1.99 5.81 2.33 2.30 2.94 5.96 5.85 (random)
      12: 6.59 Failed 12.27 4.66 9.77 18.19 50.58 (sieve)
      13: 3.19 4.63 2.30 1.78 4.46 3.73 7.05 (strcat)

  3. Languages and Libraries by TheRealFoxFire · · Score: 3, Insightful

    There is (or should be) a strong difference between a language and its libraries. Perl has done a poor job separating the two. Its nice to see Pike (or at least the poster) carry on that tradition.

    Contrast with C, Java, or Scheme.

    1. Re:Languages and Libraries by aminorex · · Score: 1

      Exactly how can you tell the difference between
      an intrinsic function and a library function in
      Scheme?

      I note that the Java language specification spends
      quite a few pages on defining the library routines
      which are required by the language.

      Likewise C has "standard library" functions which
      may be implemented by an external library or as
      intrinsics by a compiler.

      Why should there be a strong difference? Isn't
      extensibility a good thing?

      --
      -I like my women like I like my tea: green-
    2. Re:Languages and Libraries by TheRealFoxFire · · Score: 3, Insightful

      Firstly, the library has nothing to do with extensibility. Extensibility is a property of the language which just means that the syntax and semantics make it easy to add new syntax or library functionality.

      Library functions are any which can be (but don't have to be) implemented in terms of other existing functions. As you note, the JLS specifies a bunch of primitive functions. These are the functions without which it would be difficult or impossible to write other Java programs.

      The problem with not having a good distinction between language and library is that your needs in the library are too easily allowed to corrupt the simplicity of the language. Look at Perl, for example, whose language and syntax is frightingly complicated because of the inbreeding between language and library. Perl 6 is attempting to correct a lot of this, and rightfully so. No matter how much you like Perl 5, at some point the hodgepodge becomes a barrier to further use.

    3. Re:Languages and Libraries by Ender+Ryan · · Score: 2, Insightful
      What the hell are you talking about?

      Perl, for example, whose language and syntax is frightingly complicated because of the inbreeding between language and library.

      Care to qualify that at all? How are perl libraries any different than in any other language? They don't alter the core language in any way(at least not without serious voodoo). In fact, perl 6 is going to allow libraries to introduce new syntax, which seems to contradict what you were saying about it.

      --
      Sticking feathers up your butt does not make you a chicken - Tyler Durden
    4. Re:Languages and Libraries by Dayflowers · · Score: 0

      How is perl's syntax complicated?

      Sure, its easy to for one to write horrendous code, but its just as easy to obfuscate code in C/C++.

      Other than the regexp's perl's syntax is quite simple, and I believe anyone who knows a bit of C/C++ should have no major problems adapting to it.

      And I fail to see how the libraries are a problem in perl. Actually, its the other way around, CPAN is an impressive effort, and if there's a language where it is easy to find and use libraries for whatever purpose, it is perl.

      --
      I am a speak english. Do you not? - Saroto
    5. Re:Languages and Libraries by Anonymous Coward · · Score: 0

      There is (or should be) a strong difference between a language and its libraries.

      Huh? A lisp person would say the exact opposite - every good lisp/scheme program is an extension of the language, and C is so small that just about all of "C" is really standardised libraries.

    6. Re:Languages and Libraries by aminorex · · Score: 1

      > They don't alter the core language in any way(at least not without serious voodoo).

      Well, even if they did, wouldn't that be a meta-object protocol, generally considered to be a Good Thing?

      --
      -I like my women like I like my tea: green-
    7. Re:Languages and Libraries by eyeye · · Score: 1

      He seems to really hate perl since he keeps picking on it in particular.

      Perl has some problems but the way libraries work is not different to most other languages.

      --
      Bush and Blair ate my sig!
  4. Or use compiled Python.. by Anonymous Coward · · Score: 2, Interesting

    If you want to beat the crap out of your Python/Perl program speedwise, try porting it to Pike...

    Or use the Psyco runtime compiler for Python. It gets to within 50% (or more) of the performance of C in many cases.

  5. Re:bork bork bork by Anonymous Coward · · Score: 0

    Swedish chef, you nuts! Mod it up as funny!

  6. I'll make the dumb joke! by mbadolato · · Score: 4, Funny

    Ok, it's a Swedish programming language. Thus, I'm assuming that error handling consists of log entries reading "[Bork Bork Bork!!] Some error text here"

    1. Re:I'll make the dumb joke! by cant_get_a_good_nick · · Score: 1
  7. Re:bork bork bork by njchick · · Score: 4, Funny

    #bork bork

    bork bork(bork bork, bork bork)
    {
    bork("bork, bork, bork!\n");
    }

  8. Re:bork bork bork by Anonymous Coward · · Score: 0

    your code is fishy. it should at least read

    #bork bork

    bork bork(bork bork, bork bork)
    {
    bork("bork, bork, bork!\n", "houdy boudy.\n");
    }

  9. Pike 7.6 adds RDF and OWL support, too. by Leif+Stensson · · Score: 3, Informative

    There is at least one more noteworthy addition in Pike 7.6: the support for the semantic web formats RDF and OWL.

  10. Re:bork bork bork by Anonymous Coward · · Score: 0

    Sorry, but bork is reserved keyword.

  11. kinda OT by DrSkwid · · Score: 2, Insightful


    having stuff supported at the programming level is stupid

    Whatever happened to 'everything is a file'

    Plan9's user level file systems are far more suitable.

    One programs services to appear as file system in the process' namespace. The canonincal example of this is ftpfs which presents a remote ftp server as part of one's local file system.

    By using this method, *no* programs need be compiled with knowledge of the ftp protocol and sockets nd the like. In fact it wouldn't even know it was talking with an ftp server.

    All services and devices are presented like this in plan9. Most things can be achieved with cats and echos.

    --
    There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    1. Re:kinda OT by LWATCDR · · Score: 3, Interesting

      The question is that level of abstraction always a good thing? What about graphics? Is the display a file as well? sound? I admit Plan9 is interesting I will have to try it out in my free time :)

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    2. Re:kinda OT by DrSkwid · · Score: 1

      There are multiple interfaces to the graphics side.

      • The Screen memory is presented as a regular file for R/W
      • /dev/draw accepts drawing primitives via it's ctl file
      • using the calls directly from


      sound : cat soundmusic.pcm > /dev/audio

      what to know what the mouse is up to :
      cat /dev/mouse

      Anyway my point was that if one wrote a bit-torrent file system in plan9 then *every* programming language would suddenly have bit-torrent capabilities.

      It's all about 9p.

      I have python libs that can do 9p so it's not just confined to plan9

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    3. Re:kinda OT by LWATCDR · · Score: 1

      couldn't this be added to say Linux with some device/file system drivers? It might make an interesting project.
      I wounder could you do a seek on a multimedia file to a timecode with that system? Or would you have to do a seek to a byte in the multimedia file to start it from a certian location?

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    4. Re:kinda OT by DrSkwid · · Score: 1


      reading and writing is by offset and count.

      Which also means that giant sparse files are trivial to implement.

      It's just a protocol for manipulating a file tree. A suprisingly simple concept that yields so much more than it sounds.

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    5. Re:kinda OT by LWATCDR · · Score: 1

      But is the offset and count also abstracted? For a multimedia file like audio or video the timecode would be a better metric than the byte count. I know this getting way off topic but I find it very interesting.

      --
      See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
    6. Re:kinda OT by DrSkwid · · Score: 1

      Here's the protocol

      http://plan9.bell-labs.com/sys/man/5/INDEX.html

      one supplies an offset and count and the server returns whatever data it feels like.

      So yes, you are free to play games with the units be it bytes or timecode.

      one issues :
      size[4] Tread tag[2] fid[4] offset[8] count[4]

      and gets returned
      size[4] Rread tag[2] count[4] data[count]

      tag is an ID for this request, fid is an id for the file
      size is the packet size, the rest is the payload.

      The thing you would have to be careful of, though, is the maximum 9p packet size, which is usually set to 8k though this is negotiable.

      I can imagine some system that facilitates MPEG editing by representing the MPEG as RGB24 full frames or even multiple channels for the RGB video channels or even s YUV. There's plenty of scope.

      inferno also uses a 9p variant protocol, Styx, to do much the same thing. You can run Inferno as an application . Inferno as an application is a virtualized OS but aimed at embedded devices, PDAs etc.

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    7. Re:kinda OT by DrSkwid · · Score: 1


      I should also mention that one *big* problem with backporting such a system is the division between user and kernel space.

      Unix is broken by design. The inventors themselves say so. They redesigned it to make hard things easy and plan9 was born.

      Durable != optimal

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
  12. Re:bork bork bork by trouser · · Score: 1

    return bork;

    --
    Now wash your hands.
  13. MOD PARENT UP! by Anonymous Coward · · Score: 0

    This is funny!

    The swedish chef is awesome!

  14. Pike has cool new concepts by Anonymous Coward · · Score: 2, Interesting

    Like this, for example:

    private void
    show_user(int|string id, void|string full_name)
    {
    write("Id: " + id + "\n");
    if(full_name)
    write("Full name: " + full_name + "\n");
    }

    notice the first argument can be either a string OR an int - but nothing else. Sort of like limited generics.

    1. Re:Pike has cool new concepts by FAT_VIRGIN · · Score: 1

      Nothing new. It's done better in functional languages like OCaml which ensure type safety without even having to explicitly declare types.

    2. Re:Pike has cool new concepts by Anonymous Coward · · Score: 0

      For other's sake it is useful to declare types. Also leads to fewer runtime problems.

  15. Re:bork bork bork (put ze cheeken in de oven) by jdkane · · Score: 2, Funny

    %BORK - Bork Pointer
    This 32-bit register always points to the translated instruction on the stack : this means that the PUSH and POP operations would be specified in pseudo-C as:

    *--BORK = value; // put ze cheeken in de oven

    value = *BORK++; // done

  16. pretty syntax by TekZen · · Score: 1

    I think the syntax of Pike is rather nice. I might have to give it a whirl.

    1. Re:pretty syntax by Anonymous Coward · · Score: 0

      Marombas.

  17. Please fix your sig. It is wrong. by DAldredge · · Score: 0, Offtopic

    I am going to make the assumption that your sig refers to the current resident of 1600 Penn. Ave.

    It's wrong.

    President Bush was born on July 6, 1946, in New Haven, Connecticut...

    1. Re:Please fix your sig. It is wrong. by Marillion · · Score: 1

      That may be where he was born. The Bush family, going back to when Prescott Bush (Senior's Dad) was the Junior Senator from Connecticut has ties to the state. But, Jr. currently has 76638 as his zip code.

      --
      This is a boring sig
    2. Re:Please fix your sig. It is wrong. by corbettw · · Score: 1

      How do you the gp isn't originally from Texas himself, and is simply expressing his sadness over not being in his home village anymore?

      --
      God invented whiskey so the Irish would not rule the world.
  18. Speeding up Perl/Python by osewa77 · · Score: 2, Interesting

    What about simply using C++ or Java for the performance-intensive aspects?

  19. There's nothing wrong with it by markoff_c · · Score: 1

    An idiot is free to seek an engagement in any village he so chooses, that's what makes your country great. Having done so, were he to leave said village to practice idiocy in Washington DC, say, that village would be missing its idiot.

  20. BAD IDEA by FAT_VIRGIN · · Score: 3, Insightful

    Ever since the first networks, the "holy grail" of networking computing has been to provide a programming interface in which you can access remote resources the same way as you access local resources. The network becomes "transparent".

    One example of network transparency is the famous RPC (remote procedure call), a system designed so that you can call procedures (subroutines) running on another computer on the network exactly as if they were running on the local computer. An awful lot of energy went into this. Another example, built on top of RPC, is Microsoft's Distributed COM (DCOM), in which you can access objects running on another computer as if they were on the current computer.

    Sounds logical, right?

    Wrong.

    There are three very major differences between accessing resources on another machine and accessing resources on the local machine:

    1. Availability,
    2. Latency, and
    3. Reliability.

    When you access another machine, there's a good chance that machine will not be available, or the network won't be available. And the speed of the network means that it's likely that the request will take a while: you might be running over a modem at 28.8kbps. Or the other machine might crash, or the network connection might go away while you are talking to the other machine (when the cat trips over the phone cord).

    Any reliable software that uses the network absolutely must take this into account. Using programming interfaces that hide all this stuff from you is a great way to make a lousy software program.

    A quick example: suppose I've got some software that needs to copy a file from one computer to another. On the Windows platform, the old "transparent" way to do this is to call the usual CopyFile method, using UNC names for the files such as \\SERVER\SHARE\Filename.

    If all is well with the network, this works nicely. But if the file is a megabyte long, and the network is being accessed over a modem, all kinds of things go wrong. The entire application freezes while a megabyte file is transferred. There is no way to make a progress indicator, because when CopyFile was invented, it was assumed that it would always be "fast". There is no way to resume the transfer if the phone connection is lost.

    Realistically, if you want to transfer a file over a network, it's better to use an API like FtpOpenFile and its related functions. No, it's not the same as copying a file locally, and it's harder to use, but this function was built with the knowledge that network programming is different than local programming, and it provides hooks to make a progress indicator, to fail gracefully if the network is unavailable or becomes unavailable, and to operate asynchronously.

    Conclusion: the next time someone tries to sell you a programming product that lets you access network resources the same was as you access local resources, run full speed in the opposite direction.

    1. Re:BAD IDEA by DrSkwid · · Score: 1


      you make some valid points for WANs

      but the constant gains outweigh the infrequent losses

      my LAN *is* always available

      single step debugging a broken process on a MIPS machine in NY from an x86 in Paris made possible by such things are such a gain that saying 'yeah but what about resume uploading eh, bet you hadn't though of that?' is a bit specious.

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    2. Re:BAD IDEA by Anonymous Coward · · Score: 0

      My LAN isn't always available. When somebody uses the microwave, my 802.11b stops working.

      Relying on network transparency to make everything automatic is like relying on cooperative multitasking because it's so easy to do in event-driven programs. In other words, it works fine when everything is well-behaved, but each application is another point of failure that exponentially increases the likelihood of failure.

      Sure, it makes sense to view files as files, so being able to access FTP or WebDAV over the filesystem interface is convenient (I don't have to put FTP into my app so that I can load/save files on an FTP server). However, it's ridiculous to say that there doesn't need to be an FTP library because nobody's going to make an FTP client from just reading/writing the filesystem.

      As far as I'm concerned, the "everything is a file" metaphor is only wonderful to people who only have a hammer!

      aQazaQa

    3. Re:BAD IDEA by DrSkwid · · Score: 1

      > As far as I'm concerned, the "everything is a file" metaphor is only wonderful to people who only have a hammer!

      and what a wonderful hammer it is, coming to you soon in the OS of your choice.

      don't get stuck on the FTP and networked stuff, there's plenty of scope for file tree based applications. Nothing is a solutiuon for everything but why ignore it for the applications tht could really benefit.

      my mailbox is one big file but it's presented as a file system :

      cd /mail/fs/mbox

      grep birthday */subject

      my google searches are presented as a file system

      etc.etc.etc.

      --
      There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
    4. Re:BAD IDEA by cakoose · · Score: 1

      You could have just linked to Joel's rant instead of copying it without attribution.

      Anyway, I think that the way to go is to make the standard local-file-access API more powerful. That way, you can still have a unified API. Which is why "FtpOpenFile" isn't the best way to go.

      And it doesn't necessarily have to be much harder to access local resources with the more powerful API. The common/simple cases can be streamlined. For example, language features like exceptions can let you ignore errors that you wont encounter when doing local stuff. (No, exception semantics aren't perfect (yet), but they do work well in many situations).

  21. Packages for Fedora Core 1 or Fedora Core 2? by Anonymous Coward · · Score: 0

    I'd like to try Pike but I would also like to be able to easily uninstall Pike from my system if I don't use it. Is anyone packaging Pike for Fedora Core 1 or working on making a package for what will be Fedora Core 2 (which will be coming out soon)?

    Thanks.