Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
GUI Software X

Y Window System Project Started 512

cuppm writes "Y, Mark Thomas's final year project for his masters degree, is back in active development (outlined here). Here is the email I received: '...Y development is about to start up again. If you are interested in participating, the website is at: http://www.y-windows.org/. There are links to mailing lists there, and you can download the latest development snapshot, which should compile this time :o). I apologise if I did not respond to your email personally. I was on holiday in Japan when the story broke, and by the time I got back I had over 80 emails about the subject, many of them in depth. If you had specific points that you'd like to raise, I suggest re-raising them on the y-devel mailing list.' So for all those who think it's time for a X replacement, here's your shot. And for those X lovers, use Y's extensibility to make it X compatible." See our previous story for more background.
This discussion has been archived. No new comments can be posted.

Y Window System Project Started

Comments Filter:
  • Re:Women's Windows (Score:5, Informative)

    by npietraniec ( 519210 ) <npietranNO@SPAMresistive.net> on Thursday February 19, 2004 @01:10PM (#8327975) Homepage
    Um... Women don't have a Y chromosome.
  • Re:Women's Windows (Score:2, Informative)

    by LostCauz ( 121686 ) on Thursday February 19, 2004 @01:11PM (#8327981)
    Women are XX, men are XY.
  • Re:Women's Windows (Score:2, Informative)

    by LordFoo ( 518001 ) on Thursday February 19, 2004 @01:11PM (#8327991)
    I think you mean for men only -- (normal) men have XY sexual chromosomes, women are XX.
  • Re:At long last! (Score:4, Informative)

    by Guy Innagorillasuit ( 249136 ) on Thursday February 19, 2004 @01:11PM (#8327993) Journal
    I think the renewed interest in Y-Windows may be doe to the licensing concerns about X's new license not being GPL compatible.
  • History of X (Score:5, Informative)

    by baywulf ( 214371 ) on Thursday February 19, 2004 @01:14PM (#8328039)
    I was reading an old book on X Windows the other day and the naming came something like this:

    Stanford had an operating system called V where they developed a windowing environment called W. MIT needed such a windowing environment for the Athena project and borrowed the W system from Stanford. They made so many improvements over time that it no longer resembled the W system so they named it the X Windows system. Over time 11 versions were developed as more and more Unix companies got interested. But by then MIT had its needs met so an X Consortium was formed that developed the X11 system from revision 1 to 6 reaching the X11R6 release that we have now.
  • by peragrin ( 659227 ) on Thursday February 19, 2004 @01:19PM (#8328097)
    Try reading for once, GPL version 3 is supposed to take into account the incompatiblities with the new Apache License, and xfree86 4.4 new license. Then again it isn't out yet either.
  • by Anonymous Coward on Thursday February 19, 2004 @01:22PM (#8328133)
    Cache [66.102.9.104]
  • About Y (Score:5, Informative)

    by scishop ( 622414 ) on Thursday February 19, 2004 @01:23PM (#8328150)
    Taken from their site:

    About Y

    I've got tired with the state of desktop GNU/Linux. Most of the problems that I see with it can be traced back to the underlying window system, X. So I decided to write its successor...

    Y was my final year project for my masters degree at the Department of Computing, Imperial College, London. I set out to design and begin the implementation of a modern windowing system. The Y design has the following features:

    Network Transparency

    Contrary to popular belief, supporting network transparency does not reduce the speed of the window system on local hosts. Further, with Y's in-server knowledge of widgets, applications run over a slow network can appear almost as responsive as local applications (especially when compared to an X application).

    Modularity (plug-in style: dynamically unloadable and reloadable)

    Unload an old video driver, load a new version. On the fly. No restart in sight.

    In-server implementation of widgets

    Y specifies a core set of widget classes. Objects of these classes are stored in the server, where they are closer to the user and thus more responsive from the user's point of view.

    Consistency and Themeability

    Y widgets use the currently loaded theme to render themselves. Since all server widgets are using the same theme, all widgets appear consistent throughout the desktop. Client applications can also use the theme's drawing operations, allowing specialised widgets to make themselves fit in with the look-and-feel.

    Support for hardware acceleration

    The Y design can make use of hardware acceleration to speed up rendering operations. This can even include the use of 3D-accelerators' textures to draw windows with (someone has already implemented a prototype of this which is very smooth).

    Better internationalisation, localisation, and accessiblity

    In-server widgets means there can be exactly one current language, one complex input method system for languages that require them, and one set of accessibility features.

    Some more information can be found in my individual project report. If you have any more questions, ask them on the appropriate mailing list.

    The current implementation is, however, very basic. It needs a lot more work before it will be usable on a day-to-day basis.
  • Re:Stuff (Score:3, Informative)

    by jandrese ( 485 ) * <kensama@vt.edu> on Thursday February 19, 2004 @01:24PM (#8328163) Homepage Journal
    Slashdot is pretty readable with w3m [sourceforge.net].
  • Re:At long last! (Score:5, Informative)

    by jdh-22 ( 636684 ) on Thursday February 19, 2004 @01:27PM (#8328203)
    Y Windows System is looking to replace X windows system because:
    • X is too slow
    • X places to much burden on the programmer (XLib)
    • X has no standard
    • Xfree86 is over 10 years old

    This is all taken from the PDF file.
    I for one, am all for standardizing a window system. That's not saying that we can't have competiting Window managers, but there is standard of the communication to the windows system. This is (IMO) what is holding back Linux from the desktop.
  • by otahkgeek ( 721808 ) on Thursday February 19, 2004 @01:28PM (#8328214) Journal
    It still has some broken links [earthlink.net], though.
  • by David McBride ( 183571 ) <david+slashdot&dwm,me,uk> on Thursday February 19, 2004 @01:29PM (#8328218) Homepage
    Strictly speaking, we were doing a four-year undergraduate degree which resulted in a Masters award at the end.
  • IRC channel... (Score:5, Informative)

    by Chuck Bucket ( 142633 ) on Thursday February 19, 2004 @01:42PM (#8328361) Homepage Journal
    hit #y-windows on irc.freenode.net if you want to chat about Y.

    CB
  • by Anonymous Coward on Thursday February 19, 2004 @01:45PM (#8328393)
    Apple ported X for two reasons:

    1) It's easier than building their own Xlib implementation

    2) To retain X network transparency easily
  • by MenTaLguY ( 5483 ) on Thursday February 19, 2004 @01:48PM (#8328417) Homepage
    Hence XRender and the introduction of a new visual type with an alpha channel done by FreeDesktop.org, both done in a non-crufty way, yet within the confines of the existing X protocol.
  • Re:Who? (Score:3, Informative)

    by kfg ( 145172 ) on Thursday February 19, 2004 @01:57PM (#8328526)
    I'm with you, with this caveat though.

    X is not a GUI system. It is a display system. Ratpoison, for instance, requires X to run, since it runs in graphical mode as opposed to text mode, but is not a GUI.

    As such replacing X really has nothing to do with replacing your GUI.

    There is something to be said, however, for occasionally replacing old, crufty systems with newer shiney ones that work better.

    In the case of X though, since it's function is so low level, arguements as to what is meant by "better" abound.

    KFG

  • Re:Call me lazy (Score:5, Informative)

    by aardvarkjoe ( 156801 ) on Thursday February 19, 2004 @02:11PM (#8328747)
    The new X license has a clause that says that you must attribute the XFree86 team (with some specific language). Essentially, the incompatibility is that the GPL doesn't require that, so you can't take code from XFree and throw it into your GPL'd program. (Similarly, they've never been able to take GPL'd code and put it into XFree86.)

    I don't see the big deal, myself -- if you want to use their code, you use their license -- but if people want to get apopletic about it, they're welcome to do so.
  • Re:What license (Score:5, Informative)

    by Phoenix Dreamscape ( 205064 ) on Thursday February 19, 2004 @02:11PM (#8328749) Homepage
    From the COPYING file:

    The Y communication library and the YC++ library, being the contents of the
    libY and libYc++ directories in this archive, are licensed according to the
    terms of the GNU Lesser General Public License, contained in the file
    COPYING.LGPL.

    The yiterm program, being the contents of the clients/yiterm directory in this
    archive, are licensed according to the terms of the Common Public License,
    contained in the file COPYING.CPL.

    The remainder of the files in this archive are, unless otherwise stated in the
    file, licensed according to the terms of the GNU General Public License,
    contained in the file COPYING.GPL.

    (C) 2003 Mark Thomas
  • by aardvarkjoe ( 156801 ) on Thursday February 19, 2004 @02:15PM (#8328825)
    Unless there's some history that I'm unaware of, motif is a widget set that ran on top of X -- analogous to GTK+ or QT. Motif was not under a free license. There is another project, Lesstif, which was supposed to be compatible with motif, while being free -- that may be what you're thinking of.

    Of course, at this point, Motif is pretty much dead, at least on the free Unix desktop, because it was succeeded by more technologically advanced widget sets. I don't think that we will see any migration away from X until the alternatives provide a similar jump in technology.
  • Re:At long last! (Score:1, Informative)

    by Anonymous Coward on Thursday February 19, 2004 @02:19PM (#8328892)
    You could just run an X server on top of Y until a native Y app is made. If the window manager works properly, you shouldn't even notice the difference.
  • Re:Stuff (Score:2, Informative)

    by eastern ( 92669 ) on Thursday February 19, 2004 @02:20PM (#8328906)
    Slashdot's special 'light' mode (meant for text-only browsers) seems to be a well-kept secret. I haven't used the normal UI for years now, even in graphical browsers.

    Go to preferences [slashdot.org] and choose 'Light'

  • by ralatalo ( 673742 ) on Thursday February 19, 2004 @02:20PM (#8328916)
    maybe we can merge Y-windows with Fresco

    http://www.fresco.org/
  • by Chris Pimlott ( 16212 ) on Thursday February 19, 2004 @02:27PM (#8329010)
    Funny that I should read your post right after opening the Y Windows project report [ic.ac.uk]. The very title of the report is "Y: A Successor to the X Windows System"
  • Re:OpenGL? (Score:5, Informative)

    by samhalliday ( 653858 ) on Thursday February 19, 2004 @02:40PM (#8329213) Homepage Journal
    need good support for OpenGL on [...] ATI graphics cards [...] we only have binary drivers

    NO WE BLOODY WELL DON'T!! why dont people RTFM and find out that XFree86 have been writing their own accelerated (yes, 3D as well) drivers for ATI cards since time began... as they release the specs. sure, ati also make their own, but XFree86 also make them. and they also work on FreeBSD. also, incase you didn't notice, the linux kernel even ships with the radeon and ati Direct Rendering Modules.

    if i have to point this out ONE MORE TIME on slashdot, i swear to god i'm gonna explode...

    i wouldnt think for a minute that binary only drivers would work with Y... but i'd like to hear how different at the level of the source code, the drivers are from teh XFree86 ones... i.e., how hard will it be to port over XFree86 drivers? (assuming no license issues, which there will be since Y windows is GPL)

    this is one of the most exciting projects i have ever seen... and it has appeared at JUST the right time with the XFree86 team being assholes, and the FreeDesktop.org guys without a useable server... they are almost on a par.

    if someone could make an X11R6 compatibility layer on top of this thing... everyone oculd start using it (once drivers are made) and that is all the encouragement anybody needs to start porting their programs (or toolkits). but porting a toolkit kinda defeats the purpose, as this new implementation is trying to get rid of the need for multiple toolkit.

    but to be quite honest, the thing i am most excited about is the license... fully GPL (probably someone will advice them to go LGPL)... which means no more jokes about GNU/Linux needing to be called GNU/XFree86/Linux :-)

  • Re:At long last! (Score:4, Informative)

    by JW Troll ( 607432 ) on Thursday February 19, 2004 @02:58PM (#8329554) Homepage
    X is a single-threaded client/server application which provides windowing services and network transparency.

    Since the terms 'client' and 'server' tend to be redefined every year or two by the Xfree team, nobody else really knows which is which any more. X interfaces directly with video drivers and also with the window managers.
    The problems are fairly numerous and unfortunately difficult to fix:
    Single-threaded X is forced to share its timeslice with every client (?) program, which leads even people like Linus to complain about GUI latencies on 4-way systems with top of the line hardware. [kerneltrap.org] Not so cool. Kernel 2.6 contains some hacks to kludge around this problem, but the underlying issue still hasn't (yet) been addressed. Considering Xfree's Design by Committee creed, it never will be fixed. You might say that X is rotten by design. You might more accurately state that X is 1980 technology, and wasn't meant to do the things that modern users expect as a matter of course (eg. 3D low latency, non-stuttering graphics). There isn't an elegant solution aside from ditching X entirely.

    From the other end, the Xfree API is a big mess of kludges. Extensions have proven an excellent tactic to obfuscate and uglify code.

  • Y runs on X! (Score:4, Informative)

    by Anonymous Coward on Thursday February 19, 2004 @03:17PM (#8329866)
    If you run 'startY' within X, Y will appear as a Window on X. This is because Y dosent use its own graphics routines, it uses SDL. Hence it will run on any hardware SDL supports. I couldn't get any applications on it to work though :(.
  • by anno1602 ( 320047 ) on Thursday February 19, 2004 @03:24PM (#8330024)
    Well, X is officially the X Window System. The shorthand XWindows is entirely colloquial.
  • Re:Call me lazy (Score:5, Informative)

    by ImpTech ( 549794 ) on Thursday February 19, 2004 @03:26PM (#8330070)
    For the umpteenth time, the 'big deal' is that a *ton* of stuff already uses their code, at least in the form of linking to their libraries. A lot of that stuff is GPL, and so can no longer be linked with said libraries and distributed without violating either the GPL or the new XFree license. As a result, we either dump all this GPL code, or we dump XFree 4.4. XFree 4.3 still works well, and is covered by the old license, hence no dumping of GPL code. Which would you choose?

    You may ask "what GPL code is so all-fire important?". Well, QT for one (and by extension all of KDE). I'm sure several key components of Gnome as well, though I dunno for sure if the new XFree and the LGPL clash. And once you've eliminated all the window managers (most are GPL), then why do you need XFree86 at all?
  • by be-fan ( 61476 ) on Thursday February 19, 2004 @04:10PM (#8330854)
    You hear a lot of people bitch, but mostly because they do not understand it. People tend to do that. Hell, I did that myself, before people beat some sense into me and made me actually understand the system I was bashing.

    X does have some problems. The set of actual problems with X, and the set of perceived problems with X are more or less disjoint.

    X is not slow. X is not a memory hog. X's feature set is not outdated. It does, however, have a very weird way of handling color, has some protocol peculiarities, and the default interface library (xlib) makes it hard to write fast apps. Most of these things can be fixed without ditching X. For example, there is an extension called XFixes which fixes certain problems with the protocol. There is a new interface library called XCB which is more "low-level" and makes it easier for toolkit authors to identify potential performance issues. Freedesktop.org's new X server will incorporate compositing and OpenGL-acceleration, to make X competitive with Longhorn, all within the existing X framework!
  • by Brandybuck ( 704397 ) on Thursday February 19, 2004 @04:37PM (#8331286) Homepage Journal
    We already have an interesting, viable alternative(FreeDesktop)

    Of the software hosted at FreeDesktop, the site has this to say: "None of this is "endorsed" by anyone or implied to be standard software, remember that freedesktop.org is a collaboration forum, so anyone is encouraged to host stuff here if it's on-topic." The software section of FreeDesktop is in essence a "sourceforge" for desktop related software.

    There's no one talking about the "Sourceforge" replacement for AOL Instant Messenger, even though Sourceforge hosts the Gaim project (currently the most active project there). Ditto for the software at FreeDesktop. The purpose of FreeDesktop is not to create an X replacement, even though it happens to host some independent projects that seem to lean in that direction.

    You're probably talking about the X server software that Kieth Packard is developing there. This is not a full X implementation. It's just the server. You also need X libraries. This is another project at FreeDesktop, but it's just getting started. And beyond this you still want the X clients, X fonts and servers, etc. ...and it's got heavy involvement with the major developers of Gnome and KDE, the two most popular desktop systems.

    It's got minor involvement with those desktops. Originally FreeDesktop was meant to be a collaboration zone, and for a while it worked well to get some common standards for icons and desktop entries. But it's become quite muddled of late. Some people have gotten the impression that any software hosted on FreeDesktop (such as D-BUS) is some sort of standard that must be used by both Gnome and KDE. This is simply not true.

    Of certaintly, neither Gnome nor KDE are actively involved in any X11 replacement.
  • by buysse ( 5473 ) on Thursday February 19, 2004 @05:14PM (#8331929) Homepage
    You're confusing X11 with the window manager (the desktop environment). Unless you have a horrendously-supported video card, which in an old machine is possible, you're probably trying to run Gnome or KDE on an old box with little memory. Try WindowMaker, or FVWM2 and see how fast it yes. Yes, it's not as pretty.

    Now go load IE6 or a current Mozilla on that old Windows box, and compare it to Mozilla on a decently small WM on X11. You should be enlightened.

  • by spitzak ( 4019 ) on Thursday February 19, 2004 @05:17PM (#8331988) Homepage
    XWindows was being worked on in 1983 at MIT. That would be X10. It was developed for DecStation 100's, which were 1280x1024 1-bit display screens (this is why X does pretty good with modern resolutions but is really stupid with color, somewhat different than Windows which was designed for much smaller resolutions but assummed at least 16 colors were available).

    The X11 most people are familar with was developed in 1985 and really appeared in 1986. It had a different (worse, imho) rendering model (the old one had a current point and moveto/lineto like PostScript). It also introduced the seperate window manager process, Visuals, multiple colormaps, and the wacky font-naming scheme with the dashes (before that fonts were named things like "fixed12" for the 12-pixel tall fixed-pitch font).
  • Re:At long last! (Score:2, Informative)

    by srslif16 ( 588208 ) on Thursday February 19, 2004 @05:21PM (#8332057)
    > Hate 'em as much as I do, the one thing MS has done well is ensure compatability. I have to disagree with you. In every single new version of excel, my old macros stopped working.
  • It's the latency (Score:4, Informative)

    by SeanAhern ( 25764 ) on Thursday February 19, 2004 @06:16PM (#8332809) Journal
    I read the posts that say X is slow.

    One of the first sections in the original "Y Window System" paper listed the problems with X. It started off with "X is slow." However, it made a very specific allegation. It was not that X is slow per-se, but that it is highly sensitive to latency. Yeah, we all run X11 applications on our local desktop, and they're lightning fast. We can even run X11 applications from machines close by on the LAN. But very few people ever try to run X11 applications across 20 hops of the internet. Unless you have somehow ensured very low latency connections, you're gonna have lag city.

    The X Protocol is very verbose. It's one of the reasons that there have been projects to try to compress or otherwise remove redundancy from the protocol. But, at some level, it's the protocol itself which needs rethinking when it comes to speed.

    My two cents...
  • by SeanAhern ( 25764 ) on Thursday February 19, 2004 @07:32PM (#8333717) Journal
    If we're going to have a reasoned discussion/debate about this, it would be good if all participants read the original Y Window System document, which goes into all of this in a fair amount of detail. Arguing against the bullet points is a waste of time.

    However, I'll demonstrate by answering them.

    > X is too slow
    On the contrary, I fnd it's quite fast with a good accelerated AGP card. The network transparency is a very nice feature that I use regularly.


    The original document outlining Y specifically says that X is fast. Locally. But you try running a very interactive X11 application across a many-hop internet connection with lots of latency and then you'll see just how slow it is.

    This is one of the problems with X, that the protocol is very sensitve to latency and is very verbose. Unnecessarily so, IMHO.

    Does that mean the speed issues are such that you shouldn't use it on a desktop? Certainly not, as testified by the thousands of people who use it for such every day.

    That's why we have things like GTK.

    Again, this is addressed directly by the PDF:
    In 1984, before GUIs were common-place, not providing a standard toolkit was the best way to achieve enough flexibility to create all the applications that had not yet been conceived. However, these days, with the benefit of the last two decades of experience [16, 25], it is much better to provide a complete set of standard user interface components that look and behave consistently.


    Aside from the user interface inconsistency, the lack of standard components also makes internationalisation difficult, particularly for languages which require a complex input method.

    > Xfree86 is over 10 years old
    So am I. So is UNIX. So are most of the theories in Computer Science. Shound we throw them away?


    Of course not. But age can certainly bring problems. Again quoting the PDF:
    Over the years it has been extended and modified many times, to the point where it is an incoherent mess.


    Although the X protocol supports extensions very well, some of the latest extensions have begun to interfere with each other. For example, when Xinerama (the extension which allows X desktops to span multiple monitors) was first released, it broke XVideo (the extension which allows X to use hardware accelerated overlays for video play back). The fix for this was to allow XVideo to only work on the primary display. The latest extension, XRandR (Rotate and Resize), is also known to break many older applications which assume that the screen size will never change.

    Further, the internal design of X itself is outdated. Even adding a simple feature, such as translucent windows, requires large changes to the server [17]. Because of the requirement to be backwardly compatible, these features must be implemented for everything that X works on, including two-colour displays.

    In summary, X is just fine.


    For many purposes, yes. But it's starting to show signs of not being able to cope with what window systems are being asked to do in the last 5 or so years. It's worth revisiting now and again.
  • Re:About Y (Score:2, Informative)

    by BillyBlaze ( 746775 ) <tomfelker@gmail.com> on Thursday February 19, 2004 @07:49PM (#8333930)
    That is, essentially, what Y Windows does. Widgets are maintained as objects on the server, so apps just have to create them and notice when they're changed.

    There's a ton of information about how this works in this [ic.ac.uk] PDF.

    From what I've read, it's exactly what I want (and have been advocating.) My money was on PicoGUI, but hey - competition is good.

  • Re:At long last! (Score:1, Informative)

    by Anonymous Coward on Thursday February 19, 2004 @08:29PM (#8334349)
    You're so stupid.

    The server is the part with a listening socket. Eg, your "X" process.

    Clients are programs that connect to a server and speak the X protocol. These are the programs that use X.

    This should be a pretty clear explanation of the terminology, that anyone with any idea of how X works should understand.

    Second, XFree does not "redefine" anything. X is a protocol and set of libraries to which XFree86 conforms.

    If you knew anything about X you would not be spewing forth such ignorance.
  • by nitehorse ( 58425 ) <clee@c133.org> on Thursday February 19, 2004 @10:00PM (#8335255)
    Except that with the Composite and Damage extensions in the X server over at freedesktop.org, there are compositing managers out there that store buffers of each window in RAM and then render them to the screen with extra effects (see http://ktown.kde.org/~fredrik/composite/ [kde.org] and http://freedesktop.org/~keithp/screenshots/ [freedesktop.org] for some examples).
  • by TheEnigma ( 520116 ) on Thursday February 19, 2004 @10:37PM (#8335582) Homepage Journal
    For any programmers out there that are even remotely interested in getting Linux On The Desktop, consider this a call.

    It is a little early in the game to have such grandiose expectations. Fortunately the developers appear more level-headed. Still, they too might be letting their enthusiasm get ahead of them

    After a brief skim of Mark Thomas's paper, I have a number of concerns with the direction the project is taking. Up front I'll admit to being heavily influenced by the Cocoa libraries from Apple/NeXT, but they are light years ahead of everything else.

    • Implementation Language: Using C will be a problem. In order to achieve object orientation, they have to implement it in code, instead of getting it from the language itself. That will make the learning curve a lot steeper and make the code hard to maintain. It necessitates things like callbacks, which are a clumsy, primitive design pattern.
    • U.I. Design: It looks like they are imitating X and defining layout of U.I. in code. This is not in keeping with modern user interface libraries. It slows development dramatically. They need to emulate the Mac OS and others and define resource files that describe the U.I., so non-programmers can edit interfaces and so interface editing does not require a re-compile. Likewise, all localizable strings should be stored in text resources. Resources aren't even addressed in Thomas's paper.
    • Support Libraries: Any complex U.I. library will depend on a lot of data types and classes (or equivalents) that are not strictly U.I.-related. These ought to be in a distinct library.
    • Implementation mixed with Design: A debatable point, but there is a lot of implementation detail mixed in with the design goals, which muddies the discussion. The project really needs a detailed set of project goals, organized roughly by the order they hope to attain them. This will help ensure that bad design decisions early on don't hamper later work.

    I have been programming Cocoa for three years now, mostly in my own time between course work. I am just starting to learn X in school, and let me tell you, it is a depressing step backwards. There is no doubt that X is in sorry need of replacement, for the sake of programmer effectiveness as well as for feature parity.

    Still, you cannot just start up a new replacement project willy nilly and expect not to fall into all of the same traps. I'm sure that the X developers felt that they were future-proofing to some extent, and they must have succeeded, but why start up a whole new project just to end up in the same place in another ten years? You might as well just work with what you have.

    Alternately, if this is a research project to explore new design principles, then I wholeheartedly encourage the team. In which case it is even more important for them to set out their goals and project development order, otherwise it's unclear how they will be able to assess their own success.

There are two ways to write error-free programs; only the third one works.

Working...