Archives

Archives / 2003 / November
  • [Tools] Leo, "Literate Editor with Outlines"

    If you think you have used all possible programmer's editors, but have not yet tried Leo, you are wrong. Leo inherits from CWEB, the quintessential literate programming system designed by Donald E. Knuth and Silvio Levy, and MORE, Dave Winer's ancient and venerable outline editor. But Leo's author, Edward K. Ream, has gone a considerable distance beyond these origins. Leo is “100% pure Python,” and uses Tcl/Tk to draw the screen. Leo is portable and currently runs on (at least) Windows, Linux and MacOS X Jaguar.

  • TANSTAAFL is Virtually Untrue

    Robert wrote:
    > As someone points out, this is super depressing that an experienced
    > C++ developer can't afford a copy of VS.net.
    > May be, your company or your friends have a trial copy of VS.net
    > already since M$ mail them out to developers like there is no
    > tomorrow.
     
    Before everyone jumps on Microsoft for not making VisualStudio.NET Enterprise Architect free, let's all remind each other that the .NET Framework SDK is free. 
     
    See
    and
     
    Context:  we are discussing the needs of someone who wants to learn .NET programming.
     
    While Visual Studio.NET may make development easier, by writing a lot of code behind the scenes and by integrating lots of useful features into the IDE, it is not necessary.  You have everything you need to write and debug perfectly workable .NET code right there in the SDK.  You can use Notepad, Vim, Emacs, or any other editor to write the code.  In fact, I strongly recommend learning to write .NET code without using Visual Studio.NET so you really learn what's going on.  Sometimes tools do too much for you, particularly when you're learning.  After you learn, you can better appreciate the value of the tool.  After you learn, you are silly not to *use* the tool. 
     
    If I had my way, you would only get your scientific calculator after you learned to do a square root and at least one Taylor Series expansion by hand!  Once you know what you are really calculating and what's underneath the calculations, you would probably be horribly inefficient not to use the calculator (or computer).  The “probably” leaves some room for special cases like Turing.
     
    I'm pointing to the difference between a cookbook engineer and one that knows where and why the formulas work and where and why they don't.  If you just want to be a drag-and-drop programmer, you can ignore all of this.  If you want to be able to do deep debugging and to code for .NET intelligently, then you may gain some value from this suggested approach.
     
    Warning!  When you are behind on a project with a hard deadline, forget all of this nonsense and make your company buy Visual Studio.NET for you.
     
    For investigating database programming, you have ADO.NET in the SDK, including access to a number of ODBC and OLEDB providers.  You may be able to install and investigate MSDE, as long as you obey the "Appropriate Use" guidelines (http://www.microsoft.com/sql/msde/howtobuy/msdeuse.asp).  If nothing else, you can use MSDE with WebMatrix (see below).
     
    You can even write make files and build scripts to package your code.  See the .NET Framework SDK samples for plenty of examples.  You get nmake.exe free with the SDK.
     
    You can get a great free-as-in-beer-but-also-Open-Source IDE for C# and Visual Basic.NET on the .NET Framework at http://www.icsharpcode.net/OpenSource/SD/ -- complete with a GUI builder and unit testing framework (although I prefer the also-free NUnit: http://www.nunit.org/ for that).  Other free IDEs exist "out there."
     
    If you want to learn and play with and develop on ASP.NET, then just go to http://www.asp.net/ and download the free WebMatrix IDE (http://www.asp.net/webmatrix/default.aspx?tabIndex=4&tabId=46). 
     
    If you are an advanced C++ developer, you can certainly learn Managed C++ for the .NET Framework using cl.exe, the free command-line compiler that comes with the .NET Framework SDK.  Please see http://winprog.org/tutorial/msvc.html for details.  Also, see your equivalent of the C:\Program Files\Microsoft Visual Studio .NET\FrameworkSDK\Samples\Technologies\CrossDevLanguage\Readme.htm example in your .NET Framework SDK for a cross-language sample using both Managed C++ and C#.  Visual Studio.NET is not required.
     
    You can find many, many other resources elsewhere. 
     
    With this information, you should be too busy programming to complain about the fact that Microsoft charges for Visual Studio.NET.
     
    Key takeaways:
     
    1. Thank you, Microsoft, for the .NET Framework SDK and all of the free-as-in-beer tools and documentation you have provided!
     
    2. Thank you, .NET Community for so many other wonderful free tools, including Mono, various language implementations, a plethora of code editors, IDE's, utilities, sample code, and everything else!
     
    -----
     
    P.S.  Here is a link to the thread that motivated this article.  The thread also includes a lot of response and discussion around it.  My original message was Number 9 in the thread.
     
     
    I have edited this article based on some of the feedback and may edit it further if the discussion continues.