I don’t want to go so far as to say that the choice of programming language in development isn’t important, but I think that as things stand today, many of the languages we’ve learned about are able to accomplish the same things. In Revenge of the Nerds, Graham himself wrote that “there are, of course, projects where the choice of programming language doesn't matter much. As a rule, the more demanding the application, the more leverage you get from using a powerful language. But plenty of projects are not demanding at all.” Some may be able to accomplish them in fewer lines of code, or just in an easier or more efficient way in general, but in my experience at Notre Dame I feel like most of the languages we’ve learned are more or less interchangeable for usability. That being said, I still have favorites and least favorites - Python is one of my favorites because I feel like it’s one of the more intuitive ones, has a lot of great resources online to use, many libraries, and is very readable. C++ and Java are close-ish behind for similar reasons. C is really aggravating to me because of manually having to allocate memory, which the previous three languages handle for you. Also, learning C after C++ was really annoying because I felt like it took away everything good from C++ and is just significantly more aggravating to use in general. And then languages like Lisp were extremely difficult to wrap my head around. Personal preference aside, I think each language has things they do better than some languages or worse than others. In my opinion, choosing a language to use should be an equal amount of “how well does this language benefit the current project or task at hand?” and “how much do I like the language/how confident am I in my ability with it?”
I couldn’t say for sure what we’re currently lacking, as I personally haven’t experienced too many setbacks from lack of features (if anything, I feel overwhelmed with what already exists). Graham made numerous mentions of the macros from Lisp not existing in other languages, so that would be an example of of something lacking in our set of current tools: a modernized version of macros. And to the extent of future developments, Graham makes a comparison similar to the development of languages being a marathon, not a sprint. In The Hundred Year Language, he says, “When you're working on language design, I think it is good to have such a target and to keep it consciously in mind. When you learn to drive, one of the principles they teach you is to align the car not by lining up the hood with the stripes painted on the road, but by aiming at some point in the distance. Even if all you care about is what happens in the next ten feet, this is the right answer. I think we can and should do the same thing with programming languages.” So maybe macros are something that may be worked on soon. But there are surely more robust and meaningful changes that will happen down the road, and those are what will be exciting for us to keep an eye on. A current idea that’s popular among hackers is that of doing things efficiently and not wasting time. Hackers and programmers are always looking for ways to simplify their programs so they take less time to run or are simply written in less lines of code. In doing so, it means that they can be more productive because they can write more code in the same amount of time. I think that as languages continue to develop, a focus will be placed on speed and efficiency. Graham does make mention of the fact that modern languages take more lines of code than a Lisp one would take, so this may seem contradictory. However, I think that the sacrifice there was made in order to make things more readable and friendly. True, in the end what matters is the computers reading it. But if the hackers themselves have a hard time reading it, then that will cause problems too.
0 Comments
I believe that Paul Graham's version of a hacker is more or less compatible with Steven Levy's description. One of the main traits that Steven Levy described of a hacker is their desire to share information. Graham echoes that, saying "But there is a deeper reason that hackers are alarmed by measures like copyrights and patents. They see increasingly aggressive measures to protect ‘intellectual property’ as a threat to the intellectual freedom they need to do their job." Hackers are said to believe that if everyone has access to the same information and shares their progress, then everyone will benefit because other talented hackers and individuals can continue building on the foundations left behind by others. But, if information and products are locked behind paywalls, copyrights, intellectual properties, and other forms of restrictions, then it vastly reduces the pool of people who have access to it and can work on and improve it for the future. Graham also agrees with the idea that hackers distrust authority, saying “they [hackers] can sense totalitarianism approaching from a distance, as animals can sense an approaching thunderstorm." While I personally think this is a bit much for a description of authority, it is the idea that Levy often mentioned in his Hackers book. He goes further, saying "When you read what the founding fathers had to say for themselves, they sound more like hackers. 'The spirit of resistance to government," Jefferson wrote, "is so valuable on certain occasions, that I wish it always to be kept alive.'" The hackers that Levy wrote about certainly believed themselves to be maintaining that resistant spirit.
When I was reading Levy’s depiction of hackers in his book, I often found myself viewing the hackers or some of their opinions and methods in a more negative light. Because Graham seems to view hackers similarly to Levy, I wouldn’t say that my opinion of hackers has changed much from his description of the modern hacker. I think the idea behind being a hacker has more or less remained the same, but my own desirability to by one has experienced no change. That being said, Graham did have a few passages that I found more intriguing or desirable than Levy overall. A major one was his comparison of hacking and painting. While I wouldn’t personally consider hacking to be an art form, I appreciated some of the commonalities he drew on. He wrote, "One thing we can learn, or at least confirm, from the example of painting is how to learn to hack. You learn to paint mostly by doing it. Ditto for hacking. Most hackers don't learn to hack by taking college courses in programming. They learn to hack by writing programs of their own at age thirteen. Even in college classes, you learn to hack mostly by hacking." As someone who has both taken many coding classes and tried to dabble in more creative personal projects (music production being a bigger one), I can definitely stand by his statement that with both forms of art, one learns by doing and experimenting. Though in describing debugging as something that is “as relaxing as painting a wall,” I couldn’t disagree more. It’s certainly satisfying when you finally discover and fix a bug, but the process of doing so is often infuriating. I also liked that Graham described modern times as “the glory days of hacking.” Despite not personally wanting to identify as a hacker or be part of hacker culture, I like the idea that by being a CS major during this time period, I’m coding and participating in a golden age of computer science and innovation. Bad time management this week, so posting late :(
Blog should be posted by some time mid-afternoon of Monday, February 4th The second part of Hackers: Heroes of the Computer Revolution is entitled "Hardware Hackers" and discusses a second wave of hackers who sought to "tak[e] the Hacker Ethic to the streets ... [and] promote a version of the hacker dream that would ... spread the computer gospel through, all things, the marketplace".
I personally don't know that I'd say that spreading the hacker ethic is something that would be important. However, I may be slightly biased in that opinion because many of the characters described in the book so far have rubbed me the wrong way, either for things they say or do. In particular, I take issue with the "mistrust authority" line, as this combined with some of their other actions/tenets seems to me to almost come off as a discount communism. The lack of authority, openness, and sharing is something that I think many people find good in theory, but we've seen doesn't tend to work in practice. Though there are aspects of the hacker ethic that I do think are good - making it easy for everyone to access computers, judging people based on their skills rather than age/race/sex (even if the hackers themselves didn't always follow that, as we saw in part one), and the idea that you can create art on computers and use them to change life for the better are all ones I would agree with. To that extent, one of the first major differences between the true hackers and hardware hackers arise. The hardware hackers, based on in California, were more interested in building physical machines. They still embodied the hacker ethic in some ways, like how they shared information at the Homebrew Computer Club and how they wanted more people to have access to computers - the big difference here, though, is that some of the people in the club were interested in personal computers and the potential business opportunities behind them rather than freely allowing access. STILL IN PROGRESS I don’t think that a “true hacker” is something that has a strict definition one can easily point to. In Hackers: Heroes of the Computer Revolution, Steven Levy follows the history of a few prominent hackers as the scene was just beginning over at MIT. Though each hacker had their own quirks, personalities, strengths, and beliefs, they all shared a love for hacking and a general belief in hackers ethics. Levy writes that “They got the same kind of primal thrill from ‘maximizing code’ as fanatic skiers got from swooshing frantically down a hill” (21). When reading through the first couple of chapters, I really respected the drive and love that each of these hackers had for their desire to perfect their craft and create meaningful programs and hacks. Levy also described, “...Jack Dennis, after admiring the skill with which Samson had accomplished this feat, said, ‘My God, why would anyone want to do such a thing?’ But Dennis knew why. There was ample justification in the feeling of power and accomplishment Samson got when he fed in the paper tape…” (27). Lastly, another similar passage described that “hacking was paramount: it was what he did best and what made him happiest.” (63).
I can relate to these feelings all too well - be it finding some small piece of code that I get fixated on solving, unlocking a trophy in a Playstation game, or achieving some other feat in a personal project, I do it because I like it and it's satisfying to me. Was there really anything that compelled me to beat every song in Guitar Hero on expert other than the personal feeling of accomplishment? Not really - I just loved doing it and the feeling I got from finally pulling it off. So if being a “true hacker” can be boiled down to pursuing something that you’re passionate about and finding happiness by doing so, then by all means I would love to be a true hacker. As one of the brainstorm questions posed, I find this drive to be admirable/inspirational. However, I don’t believe that the situation is quite that simple. The further into the chapters I read, the more I became disillusioned I became with the hackers and the lengths to which they stuck with their hacking. I believe that one should pursue what they’re passionate about, and I understand that at times, sacrifices have to be made to pursue that. However, I don’t think that it should be the “end all be all,” that your existence should solely revolve around that aspect of your life. Levy writes that hackers “shared the common hacker experience of seeing [their] grades suffer from missed classes” (29) because all they would do is hack. It was the only thing that was important to them. Further, “They wouldn't sleep. Six hackers worked around two hundred and fifty man-hours that weekend, writing code, debugging, and washing down take-out Chinese food with massive quantities of Coca-Cola,” (46). Lastly, “Hacking had replaced sex in their lives” (70). This paints “true hackers” as people who sacrifice their health and well-being in addition to potential social-led emotional happiness and gratification for the sole purpose of hacking. It even paints them as people who look down on others for having fun and participating in activities not “devoted to the cause.” As an example of that, Levy wrote how the hackers at MIT thought less of hackers at Stanford because “they were sort of more fun-loving” (119). I don’t see how striving to maintain a fun side of life is a bad thing. I respect the drive of the MIT hackers, but I don’t respect the attitude and “looking down on others” style they seem to have had. Skipping ahead, Levy describes how there were consequences when hackers were brought back to the real world. In chapter 7, LIFE, he writes about protests that took place outside their lab, about health scares with a hacker named Merton, and about an unnamed hacker who turned to drugs and attempted suicide (though to be fair, I don't believe it was explicitly stated it was related to the hacking, just that the hackers didn't know how to respond to it). Levy also writes about how, when hackers in Minsky and Fredkin’s lab would get into a rut, then “they needed to get out of the lab and the lab needed them out” (116). The fact that these hackers were so focused on their hacking that they treated people in the lab who began to move in different directions, focus on other projects, or get stuck in ruts as “fodder” that needed to be removed is terrible. In the end, I would not say that I want to be a “true hacker.” While I respect the way in which they strive to meet their goals, constantly learn, consistently develop their skills in their craft, and what these hackers did for the field of hacking and programming, they do so with too many expenses and too narrow-minded thinking. I think a healthier balance of work and a social life, or pursuing what you’re passionate about and doing what is needed to be healthy and well-rounded, needs to be struck. I know that personally, I would never put my work over my family and likely not over my friends. One needs to recognize when to take a step back and when to go all out - it can never always be one or the other. |
Details
AuthorJoey is a senior at Notre Dame studying computer science ArchivesCategories |