Domain: pragmaticprogrammer.com
Stories and comments across the archive that link to pragmaticprogrammer.com.
Comments · 122
-
Re:No support for web applications?
Precisely!
IDE developers out there, my first and only often criteria for judging any IDE out there is - can I import an existing project easily?
If not, it's not worth it - you're going to have to give me something really spectacular if I'm going to go through the pain of you making this difficult for me. Working with my current project lets me compare your environment to my current one meaningfully.
I didn't like Eclipse 1.0 and hate Websphere Application Studio (I had to endure over an hour uninstalling it the other day) - there seem to be too many "evil wizards" and I don't like the metaphors used by IBM - they don't seem intuitive. Eclipse 2.0 will definitely get a look, but I don't imagine I'll stop using IDEA anytime soon.
-
Some more suggestions....
The OReilly CD bookshelves are really really good value for money, and the space saving on a bookshelf is nothing short of phenomenal (in addition to searchable pages and indexing)
Not all of them are of the same quality, though.. as mentioned earlier, the Perl CD bookshelf is excellent, I'd also highly recommend the Oracle PL/SQL bookshelf (for anyone interested in doing database programming in particular)..
In addition to Code Complete, Rapid Development is also a great book for anyone in the IT industry (this is also written by Steve McConnell).. another couple of great programming books are written by Steve somebody (McGuire ? yup, google tells me that's right.. link here )
Another book highly recommended to me is The Pragmatic programmer, although I haven't gotten hold of a copy yet
:).. You've also missed out some literature on Extreme Programming which might come in handy...and here's the link for the FreeBSD book, mentioned earlier... -
The Pragmatic Programmer
Andy Hunt and Dave Thomas' The Pragmatic Progammer" is a wonderful condensation of the general wisdom a smart person will gain in their first five years or so of a career in software development. A lot of the stuff in here is just common sense, but some of it (too much of it, really) some people never seem to learn.
-
narrow the gap while coding
I recently read a weblog from a young yet experienced programmer. He clearly states that programs should be written with easy readable statements.
Because the code should be the documentation, and will become the facts, surviving any design tool, paper or specification that led to it.
I agree completely with him. Sometimes programming compares to the art of writing, or even philosphy.
Well documented and readable code also covers the DRY (Don't Repeat Yourself) principle. That does not mean that the concept shouldn't be created or documented. It means that the code digs in far greater detail to what are the exact businessrules. Therefor it is imperative that the syntax of the language helps to the readability.
Closing the gap between the problem space and the solution space as much as possible, is the real achievement. Writing readable code is a great way to do just that. -
For all the Perl and Python programmers...Here is an excellent "Ruby Programming" eBook that can be downloaded for free from http://www.pragmaticprogrammer.com/ruby/downloads
/ book.htmlHere, you can download the Ruby source or the executables for your platform at http://www.ruby-lang.org/en/index.html
-
Programming Ruby Online Edition
Programming Ruby by David Thomas and Andre Hunt is available online and for free at www.rubycentral.com/book/
-
No Documentation?
No Documentation? You can download the entire text of Programming Ruby for crying out loud -- what more do you want? You just don't get this amount of free documentation in the Perl or Python worlds. Additionally, the Developer's guide is at least the fourth dead-tree Ruby book published, so it is clear that *somebody* is buying them. As for buggy bindings, I haven't noticed that Ruby bindings are any more buggy than those of other languages.
-
Re:cygwin!
> python even has gui bindings for windows
I'm not sure about native Win32 GUI stuff, but Ruby certainly has some pretty decent OLE support.
There's also support for native DLL API calls, and a free downloadable book (Programming Ruby).
The syntax is nice and clean and the object model is lovely. The C API is rather good too; C/ObjC/C++ extensions often end up looking rather like Ruby.
You can grab Win32 binaries from http://www.pragmaticprogrammer.com/, which includes a nice selection of bundled modules. -
Re:cygwin!
> python even has gui bindings for windows
I'm not sure about native Win32 GUI stuff, but Ruby certainly has some pretty decent OLE support.
There's also support for native DLL API calls, and a free downloadable book (Programming Ruby).
The syntax is nice and clean and the object model is lovely. The C API is rather good too; C/ObjC/C++ extensions often end up looking rather like Ruby.
You can grab Win32 binaries from http://www.pragmaticprogrammer.com/, which includes a nice selection of bundled modules. -
Ruby plug
If you like Python you will love ruby. Its syntax is imho much nicer and ruby is true OO. There are many technical reasons to like it, but the really great thing is how it is really easy to express yourself in. Unfortunately Ruby is not really as popular outside Japan as it deserves. Check out the pragmatic programmers book and give it a whirl.
Pragmatic Ruby -
I wish this wasn't modded to "5" and that...
... I had mod points.
:) Because I'd mod this one Waaaay up.
Those advice from Stroustrup are worth gold. And as if a coincidence, those very advices echo through that very book you are mentioning. I read it. It is very good.
Actually, those, and similar advices are the ones I try to live by too... my greatest problem right now, however is that it is too much to choose from. After reading this, and revisiting Hunt and Thomassite I think I'll have a go with Ruby, finally.
Thanks!
-
I wish this wasn't modded to "5" and that...
... I had mod points.
:) Because I'd mod this one Waaaay up.
Those advice from Stroustrup are worth gold. And as if a coincidence, those very advices echo through that very book you are mentioning. I read it. It is very good.
Actually, those, and similar advices are the ones I try to live by too... my greatest problem right now, however is that it is too much to choose from. After reading this, and revisiting Hunt and Thomassite I think I'll have a go with Ruby, finally.
Thanks!
-
Traditionally UNIX utils on Win32
Here are just a few of the tools that are considered traditionally in UNIX/Linux/BSD territory that are available for Win32. In all actuality, there's enough out there to get as much of Linux running on Win32 as Win32 running under WINE.
XFree86: http://sources.redhat.com/cygwin/xfree/
KDE: http://kde-cygwin.sourceforge.net/
GTK/PHP/Libglade: http://gtk.php.net/download.php
Apache: http://www.apache.org
PHP: http://www.php.net
PHPTriad: http://www.phpgeek.com
Perl: http://www.activestate.com
Ruby: http://www.pragmaticprogrammer.com/ruby/downloads/ ruby-install.html
Python: http://www.python.org/download/download_windows.ht ml
TCL/TK: http://www.pconline.com/%7Eerc/tclwin.htm
MySQL: http://www.mysql.com
MySQL ODBC: http://www.mysql.com/downloads/api-myodbc.html
PostgreSQL: Included in cygwin (only works on NT)
ATT's U/WIN* Unix for Windows: http://www.research.att.com/sw/tools/uwin/
Cygwin: http://sourceware.cygnus.com/cygwin/
DJGPP: http://www.delorie.com/djgpp/
Native UNIX command-line binaries: http://www.wzw.tu-muenchen.de/~syring/win32/UnxUti ls.html
vi: http://www.cs.vu.nl/~tmgil/vi.html
Emacs: http://www.cs.washington.edu/homes/voelker/ntemacs .html
OpenOffice: http://www.openoffice.org
Mozilla: http://www.mozilla.org
GIMP: http://user.sgic.fi/~tml/gimp/win32/
List of GNU software for Windows: http://www.gnusoftware.com/
And so on . . .
There's a list over at DMOZ.org of a lot of this. -
Give it time
I think as long as it's use is based on it's usefullness (which has been the case with most scripting languages), it's only a matter of time.
Ruby has been as much of a pleasent surprise to me as Perl was back when I first learned it. No, it's not "Perl with Objects"; Perl itself does that quite well. It's more like Smalltalk, only readable, pragmatic rather than idealistic, and as expressive and concise as Perl when you want it to be. Personally, i think Ruby is a much greater threat to Perl than Python is, in the long run. Rather than forcing you to do it Guido's Way, you can do it the Perl Way, or the Smalltalk Way, or the Functional Way... or any combination of the above. No wonder the Pragmatic Programmers wrote a book on it. It does TMTOWTDI better than Perl does TMTOWTDI; while remaining relatively simple and clean.
So just give it time. I think it's well on it's way to world domination.
Oh, and as for a CPAN-like code archive for Ruby, there's a somewhat embrionic one here. There is discussion currently going on at the RubyWiki on how to implement a CPAN-like system for Ruby only avoiding the problems that CPAN has.
-- -
Ruby ResourcesRuby is fairly new to the English speaking community, but there are some good resources for it. Dave Thomas and Andy Hunt (authors of the "Programatic Programmer") have been doing a great job of promotting it and getting the information out to all of us non-Japanese speaking programmers.
Here's some references
...DDJ's January Article on Ruby (Thomas and Hunt)
Ruby Presentation (Thomas and Hunt)
Programming in Ruby Book (Thomas and Hunt. Available from Addison Wesley, online version is under an open content license)
And some web pages
...
-
Programming Ruby is Free DocumentationYes, Ruby is a cool language. The coolest thing about Programming Ruby the book is that it's libre, free as in free speech, even according to the Free Software Foundation.
- Open Publication License
- FSF's take on the OPL
- The source for the book is available (in addition to the html version).
-
Programming Ruby is Free DocumentationYes, Ruby is a cool language. The coolest thing about Programming Ruby the book is that it's libre, free as in free speech, even according to the Free Software Foundation.
- Open Publication License
- FSF's take on the OPL
- The source for the book is available (in addition to the html version).
-
Re:Ruby is really nice...I, too, found one of the biggest hurdles with Ruby to be the lack of quickly accessible man-page equivalents for the standard classes; I'm quite spoiled by Perl's perldoc(1), with its ability to quickly look up the syntax of some function or operator while in the midst of writing scripts.
Well, Dave Thomas (yes, one of the book authors) recently released a program called ri (the Ruby Interactive reference), which gives you quick command-line access to the documentation (same text as in the book) for any of the standard classes and methods! Makes Ruby much more programmer-friendly. You can find it here.
-
Re:Ruby is really nice...I, too, found one of the biggest hurdles with Ruby to be the lack of quickly accessible man-page equivalents for the standard classes; I'm quite spoiled by Perl's perldoc(1), with its ability to quickly look up the syntax of some function or operator while in the midst of writing scripts.
Well, Dave Thomas (yes, one of the book authors) recently released a program called ri (the Ruby Interactive reference), which gives you quick command-line access to the documentation (same text as in the book) for any of the standard classes and methods! Makes Ruby much more programmer-friendly. You can find it here.
-
Speaking of languages...
This is pretty off-topic but, what the heck.
People interested in a very cool, completely object-oriented, beautiful, powerful language should check out ruby.
I think that ruby's clean syntax and pure object orientation outclasses (is this a word?) perl and python easily.
And, for anyone interested in learning, Dave Thomas and Andy Hunt (who wrote The Pragmatic Programmer, a book that all programmers should read) have written a book about ruby and placed it under the Open Publication License.
-
NoneA memory leak is a sign of bad design. If you have it, rewrite your code.
When you insert a malloc() in your code, be sure to make it clear to yourself "who" or "what module" is responsible for that memory, and be sure to hold it responsible for freeing it again. If you are object oriented, this is even easier.
Programmers that write programs that allocate memory, and then get back to them to insert free() statements when the programs are to be used in practice, should be fired ASAP.
Don't program by coincidence, Think! -
Re:France and Yahoo and ???
"That which does not kill me makes me stronger".
Sometimes it just leaves you weaker and more vulnerable to future attack.
Exactly how have these laws reduced "nazism" or whatever you want to call it?
Well, the stated intent behind the laws was to prevent far-right groups from seizing power in a European nation and starting another war/genocide. It is true that no such war has happened, but obviously it is almost impossible to prove what impact - one way or another - a particular law has had.
Has it done anything to address the issues which created the need for nazism in the first place?
Well the issues that "created" Nazism in Germany between the wars were massive poverty, hyper-inflation, a loss of national pride and rampant and institutionalized racism. None of these conditions exist now in Europe, and you can certainly make a reasonable argument that the laws against racial hatred contribute towards moving racist attitudes from the mainstream of a society to the fringes. So I would conclude that these laws are one part of an effective program of measures.
Is treating the "symptoms" the way to cure the disease...
There is a lot of evidence that treating symptoms really can cure the underlying disease. This is the "broken window" theory of crime: take a look at this book review that gives an overview of the theory. It is the theory that was behind New York's clean up of minor crime in early 90's. That effort was widely credited with a dramatic reduction in serious crime in that city.
...or are these laws really intended to push political agendas that are not openly espoused, and to silence groups that that ruling elites would rather not have to deal with?Errr... the political agendas of anti-nazisim are openly espoused and widely supported in the countries that have such laws. And I'm sure that the "ruling elites" (aka the democratically elected governments) would rather not deal with the murderous thugs of the extreme right-wing, but given that they have to, I think they are doing a pretty good job.