Slashdot Mirror


Perlbox: A Unix Desktop Written in Perl

cascadefx writes "It appears that this programmer has created an Open Sourced Unix Desktop, PerlBox, written in Perl and Tk. I found this posted in response to an article on Perl Monks asking if Perl was obsessed with CGI?. Apparently not. Check it out, it looks pretty interesting." I wonder how fast it runs?

29 of 264 comments (clear)

  1. It's a speed demon by Anonymous Coward · · Score: 5, Funny

    I wonder how fast it runs?

    About

    this

    fast

    .

  2. Dammit by Screaming+Lunatic · · Score: 5, Funny

    Dammit!!! I would have had first post if it wasn't for this perlbox desktop. ;)

  3. The rest of the OS in Perl by Shiny+Metal+S. · · Score: 3, Funny

    Read my old comment to Subterfuge with Subterfugue story: Re:Perl in the Linux kernel? There's some info about other parts of the operating system written in Perl: Perl /bin tools, Perl shell and even Perl kernel. I couldn't find a working link to Perl filesystem (PerlFS by Claudio Calvelli?), so if anyone knows it, please post it.

    --

    ~shiny
    WILL HACK FOR $$$

  4. funding by psyclone · · Score: 5, Interesting
    I think it's cool that this group received part of a research grant to fund this project. An important thing to note is that software experiments like this are a science in a way -- they're looking at a problem and trying to solve it in a new way, and publishing their results.

    more open source projects could easily benefit from a funding model like this. There seems to be research money floating around universities (mine included) that could easily go to open source projects; it just may not be the project you want to work on, but hey, getting paid isn't so bad.

  5. Re:I wish... by si1k · · Score: 3, Interesting

    Well, maybe Perl/Tk (which this Perl desktop thing uses) isn't exactly what you're talking about, but it does provide a cross-platform abstracted GUI toolkit for Perl. It's actually pretty decent. It also makes sense to piggy-back on technology (like Tk) which has been around for a while. The technology is more tried-and-true, and there are at least some Perl programmers who have tried Tcl-Tk and so it's not a huge jump.

    Now, if someone wanted to write a real abstraction layer, maybe one that would let you use either Perl/Tk, Perl/GTK+, or something else... that coule be interesting :-)

  6. Also of note.. by zapfie · · Score: 5, Interesting

    If you like stuff like PerlBox, you might also want to check out ROX-filer while you're at it. ROX-Filer an excellent file manager written in Python, and also offers a session manager, a wallpaper utility, a clock, etc, all written in Python. I'd recommend checking both PerlBox and ROX-Filer out.

    --
    slashdot!=valid HTML
  7. Why?! by Anonymous Coward · · Score: 3, Insightful

    Because we can?

    I'd like to see distributing timesharing, so that all these people with *way* too much time on their hands could donate some to us people with sensible projects to complete but not enough time.

    1. Re:Why?! by obsidian+head · · Score: 4, Insightful

      Once you take the fun out of programming, it becomes dull & peoples' skills progressively get worse.

      There's place in the world for enjoyable wizardry. That means programming is still an art.

  8. Re:I wish... by Shiny+Metal+S. · · Score: 4, Informative

    I wish that PERL had a GUI abstraction layer, similar to DBI for databases.

    See Gtk, Gnome, Tk, Qt and Wx CPAN distros.

    --

    ~shiny
    WILL HACK FOR $$$

  9. mod_perlbox by phillct · · Score: 5, Funny

    You need mod_perlbox.

    That way you can access your desktop through lynx at a speed increase of 800%. Just format your urls like this:

    http://localhost/desktop/?action=leftclick&xcord=3 21&ycord=567

  10. Re:Speed by serps · · Score: 3, Funny

    ...we call Perl "an interpreted language."

    Not to be confused with interpretive language which is what 90% of John Katz's work is written in. You know you've switched over when code like
    my $wild_speculation = "..." starts cropping up in your code.

    Of course, from a distance, Perl and Katz look just as unintelligible. At least Perl makes sense close up.

    --
    "Einstein argued that [...] God is not capricious or arbitrary. No such faith comforts the software engineer." ~ Brooks
  11. Probably by Anonymous Coward · · Score: 4, Funny

    runs as fast as KDE or Gnome!

  12. Re:Toy by Sivar · · Score: 3, Funny

    Go program something new.

    Like a desktop written in Perl?

    --
    Computer Science is no more about computers than astronomy is about telescopes. --E. W. Dijkstra
  13. B - The Perl Compiler by Shiny+Metal+S. · · Score: 3, Informative

    It's actually (almost) compiled each run, instead of being raw interpreted. In the camel book it describes it in detail, but briefly it parses it to bytecode, optimizes it, then executes it (any evals will re-do the process mid program, ect).

    Modules to play with and more info about it:

    • B The Perl Compiler
    • B::Asmdata Autogenerated data about Perl ops, used to generate bytecode
    • B::Assembler Assemble Perl bytecode
    • B::Bblock Walk basic blocks
    • B::Bytecode Perl compiler's bytecode backend
    • B::C Perl compiler's C backend
    • B::CC Perl compiler's optimized C translation backend
    • B::Concise Walk Perl syntax tree, printing concise info about ops
    • B::Debug Walk Perl syntax tree, printing debug info about ops
    • B::Deparse Perl compiler backend to produce perl code
    • B::Disassembler Disassemble Perl bytecode
    • B::Lint Perl lint
    • B::Showlex Show lexical variables used in functions or files
    • B::Stackobj Helper module for CC backend
    • B::Terse Walk Perl syntax tree, printing terse info about ops
    • B::Xref Generates cross reference reports for Perl programs
    --

    ~shiny
    WILL HACK FOR $$$

    1. Re:B - The Perl Compiler by Shiny+Metal+S. · · Score: 5, Informative

      Damn it, I @#%!$& up the links! Of course it's Overrated since it's broken. Here:

      • B The Perl Compiler
      • B::Asmdata Autogenerated data about Perl ops, used to generate bytecode
      • B::Assembler Assemble Perl bytecode
      • B::Bblock Walk basic blocks
      • B::Bytecode Perl compiler's bytecode backend
      • B::C Perl compiler's C backend
      • B::CC Perl compiler's optimized C translation backend
      • B::Concise Walk Perl syntax tree, printing concise info about ops
      • B::Debug Walk Perl syntax tree, printing debug info about ops
      • B::Deparse Perl compiler backend to produce perl code
      • B::Disassembler Disassemble Perl bytecode
      • B::Lint Perl lint
      • B::Showlex Show lexical variables used in functions or files
      • B::Stackobj Helper module for CC backend
      • B::Terse Walk Perl syntax tree, printing terse info about ops
      • B::Xref Generates cross reference reports for Perl programs

      See also perlcompile, perlhack, perlguts, perlxstut, perlxs, perldebtut, perldebug and perldebguts manpages.

      (Note to self: Check those URLs!)

      --

      ~shiny
      WILL HACK FOR $$$

  14. Re:I wish... by Shiny+Metal+S. · · Score: 5, Informative

    Now, if someone wanted to write a real abstraction layer, maybe one that would let you use either Perl/Tk, Perl/GTK+, or something else... that coule be interesting :-)

    See Wx.

    --

    ~shiny
    WILL HACK FOR $$$

  15. Re:perl is teh sux0rz by rizzo5 · · Score: 3, Insightful
    Perl has rightfully been called a write only language

    gosh, i'm tired of hearing this.

    if you develop some actual coding discipline, you can write very maintanable code in perl. use generous ammounts of whitespace, develop style rules for yourself and stick to them religiously, use descriptive full word variable names, separate compound statements into easier to understand (and easier to insert stuff between) smaller ones and of course take advantage of perl's '-w' and 'use strict' features. and if you think something still isn't clear, then for pete's sake comment it! don't blame poor coding practices on the language itself. you can just as easily write nasty unreadable code in c.

  16. Re:Why tk? by RapaNui · · Score: 3, Interesting

    Actually, the _default_ Tk look and feel sucks rocks.

    However -- the nice thing about Tk is that the widgets are
    _extremely_ customisable. A bit of tweaking of the widget options and you can make it look pretty much like anything.
    (Obviously within reason -- you can't change widget shapes, ferinstance).

    All my Tk apps, for example, have the JFC/Swing 'Metal' look 'n feel, for a bit of consistency across Java and Tcl/Tk apps.

  17. Perl and XUL by Cally · · Score: 5, Funny
    I've just started looking at XUL, the Mozilla XML User interface Language. All the Mozilla chrome - dialogs, menus, toolbars etc, all of it - is defined in XUL, which looks straightforward XML, driven by Javascript (which /I believe/ is compiled in the binary: yes? no?)

    The only thing really holding me back from using this in my current project (front end management console for the build and test scripts used to QA $AntiVirus_app) in XUL is the lack of a nice drag and drop formbuilder. There's a project to build one - XULMaker - but it seems to be making pretty slow progress and be short of people working on it. Anyway, what I was wondering was, where's the Perl bindings? Being able to say :


    my $g = XUL->new();
    $g->set_window(
    title=> 'Hello world',
    geometry => ([500, 200]),
    ...
    )

    ...and so on would be verrrrry cool. And then we could ALL build our own window managers, using Perl. And this post would be on-topic ;)

    --
    "None are more hopelessly enslaved than those who falsely believe they are free." -- Goethe
    1. Re:Perl and XUL by RevAaron · · Score: 3, Informative

      You can already create your own window managers in perl. Perlwm comes with what you need. I have a feeling you're not talking about creating window managers, but simply GUI apps. Not sure why you'd create a WM in XUL. For creating RAD GUI apps, you can use one of the GUI builders for Tk, Qt, or GTK+ (among others, probably) and create a GUI for perl.

      --

      Working toward a usable PDA environment in the spirit of Newton OS: Dynapad
  18. All-Way Flamewar! by krmt · · Score: 5, Funny

    Does this mean perl is now trying to compete with Emacs? This could get ugly...

    Ruby vs Python vs Perl running Perlbox vs Emacs running everything vs Linux running KDE vs BSD running Gnome vs Windows vs Solaris running Emacs vs OSX running Virtual PC running Activestate Perl running Perlbox...

    I think we need big a flow chart for this one.

    --

    "I may not have morals, but I have standards."

  19. Re:I wish... by Shiny+Metal+S. · · Score: 3, Informative

    That's entirely missing the point. It's as if asked "I wish perl had a unified database handling module", somebody had answered: "well, you've got the oracle module, the sybase module and the mysql module. They don't have the same API, but they all allow you to connect to the database you're using.".

    You haven't checked out Wx. It's a Perl module for using wxWindows:

    What is wxWindows?
    wxWindows gives you a single, easy-to-use API for writing GUI applications on multiple platforms. Link with the appropriate library for your platform (Windows/Unix/Mac, others coming shortly) and compiler (almost any popular C++ compiler), and your application will adopt the look and feel appropriate to that platform. On top of great GUI functionality, wxWindows gives you: online help, network programming, streams, clipboard and drag and drop, multithreading, image loading and saving in a variety of popular formats, database support, HTML viewing and printing, and much much more.

    See the wxWindows supported platforms.

    --

    ~shiny
    WILL HACK FOR $$$

  20. That can't be Perl code! by Anonymous Coward · · Score: 4, Funny

    I understood what it does.

  21. GNOME: A Unix Desktop Written in C by tps12 · · Score: 5, Funny

    It appears that this programmer has created an Open Sourced Unix Desktop, GNOME, written in C. I found this posted in response to an article on C Monks asking if C was obsessed with device drivers? Apparently not. Check it out, it looks pretty interesting. I wonder how fast it runs?

    --

    Karma: Good (despite my invention of the Karma: sig)
  22. Re:I wish... by FortKnox · · Score: 5, Insightful

    Perl would kick Java's ass as a cross-platform app development language if it did

    Seems a bit trollish, but I'll bite. If I wanted to make a large maintainable and updatable cross-platform app, with lots of time I'd choose Java. If I needed a cross-platform app that needed to be up in little time, and was never gonna be changed, I might chose your PERL with GUI Abstraction.

    Honestly, though, I don't think it would "kick java's ass", its like compairing C and C++. Is one better than the other? Depends on how you use it!
    A quick and powerful scripting language versus a high level object oriented language?
    Apples and Oranges.

    Surprisingly, though, they appear to be competing. Parrot, perls next version, contains error handling similar to Java, and Java1.4 added regexp.

    --
    Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
  23. Re:I wish... by FortKnox · · Score: 4, Interesting

    Perl is spelled P-e-r-l not P-E-R-L, this is the first sign you don't know what you are talking about.

    I simply copied the parent post's capitalization (not spelling). I've coded large products in both Perl and Java.
    BTW - its attitudes like this that make non-technical people afraid to learn technical areas. You sound like a 1337 d00d in #linux-newbies that shouts "RTMFM!" at every question. I don't mind if you argue, but insulting is a sign of elitism, which I didn't think existed in UIDs as low as yours.

    Perl is no more or less hard to understand or maintain than any other language if you code correctly. Sure I can make Perl look like line noise, but I can also make it easy to read and maintain.

    I wasn't refering to the language itself (or how clean the code is) but the OO of Java vs. the scripting of Perl. Sure, there is OO in perl, but its slapped on and unelegant.

    Its arguable, but most coders I know would find a well written, large scale, high level OO application easier to maintain and update than a large scale, powerful scripted application.

    --
    Good quote, too many chars. Seriously, the slashdot 120 char limit sucks!
  24. Re:Speed by Fweeky · · Score: 5, Informative

    > Don't Perl scripts get compiled every time they are run?

    Yes, but it's compiled into an internal bytecode format, not an executable binary.

    In this sense it's more like Java -> Bytecode -> JVM (hence Perl -> Bytecode -> PVM) than, say, C -> Object code -> Native Binary. Not quite, but near enough.

    Python has the same property, as do many otherwise interpreted languages. Parrot (the engine Perl 6 will use) is also bytecode based, and probably has more in common with a Java VM, in that it impliments a sort of dynamic-language CPU with registers and instructions, rather than just a tree of tokens the interpreter can easily walk along.

  25. Camelot Naturals? by PD · · Score: 3, Informative

    Something really funky is going on. I type in www.perlbox.org, and the page that loads up is www.camelotnaturals.com

    What the hell?

    1. Re:Camelot Naturals? by yomahz · · Score: 3, Informative


      Something really funky is going on. I type in www.perlbox.org, and the page that loads up is www.camelotnaturals.com

      What the hell?


      I think they removed the entry from the virtual hosts once the ISP saw the slashdotting. Apache (it's running apache 1.3.20) defaults to the first virtual host if a entry isn't found for the domain being requested. www.camelotnaturals.com is probably that entry.

      Looks like they've realized it and replaced it with a blank page. I don't think it was meant as a deceptive advertisement or anything like that.

      --
      "A mind is a terrible thing to taste."