HNHacker News
TopNewBestAskShowJobs

algoshift

420 karma · joined December 15, 2010

submissionscomments
algoshift··on How My Popular Site was Banned by Google
Sorry it took a few days to reply to this. Too busy writing code...

With regards to the argument that describes the resources required for customer support even to a small percentage of your audience I can only say this: It's your chosen business model. I am paraphrasing one of my favorite answers when someone complains about their job ("It's your chosen profession").

The point is that Google's business is about doing what it does for a huge number of people. If supporting them is overwhelming either get out of that business or figure out how to do it correctly. I can't really accept the "it's too many people" argument as a valid reason for not doing it well or for applying the "criminal algorithm" to everyone.

There's a side thread there that says that "providing information about how the abuse was flagged would help spammers quite a bit". While true, I, again, find myself not agreeing with the idea of punishing legitimate customers for this reason. I would like to think that the vast majority of Google customers fall under the "legitimate" category. If spammers get better because you are providing detail flagging information you will simply have to get better at detecting and blocking spammers. This would trigger an evolutionary phase which, at some point, should make it very difficult for a spammer to game the system, even with "full source" if you will. Much like security algorithms become more secure if the source is released and is tested with full knowledge of the internals, yours should do the same.

Conversely, honest and legitimate customers would gain the huge benefit of now understanding how to behave or how to do things and why a certain approach might not do well in Google's ecosystem.

One of the most frustrating things I have seen is someone full of drive to launch an internet business only to be shot down by a Google shutdown. And, when no reason or actionable information for the punishment is given this entrepreneur simply had to throw their hands up and give up on that tack. Needless to say, their next attempt ignored Google products completely and they are doing OK. My guess is that they could have done very well and much grief could have been prevented had Google said: "Your site has the following problems ..." and then, rather than cut them off schedule them for a review in, say, thirty days (or variable length based on the seriousness of the issue). That would have been far more civilized and far more conducive to helping your community grow and evolve in the right direction.

New and inexperienced internet entrepreneurs (and some experienced ones) need a way to learn how to behave. What works and what does not. What is acceptable and what isn't. It is only reasonable to assume that they will make many mistakes in their zeal to get an idea off the ground. Penalizing them with a permanent hammer blow to the head is not conducive to growing better netizens. Guiding them with actionable feedback is.

The current process can only be characterized as violent. From the perspective of an honest business person it is tantamount to getting hit with a bullet while walking your dog. The reasons could have been many. Maybe the shooter objected to your walking your dog in front of their home. Had the shooter at least attempted to communicate with the dog-walker it is far more likely that violence could have been averted.

Above all, if your "Do no evil" is sincere, then you have to change the way this works right away. The way this hits honest entrepreneurs is nothing less than pure evil. Again, you take a bullet and you don't know why.

I do appreciate your visibility here in HN. In the past I have simply given up trying to raise these and other points with anyone at Google that might remotely have the ability to at least elevate the conversation internally. I hope you might be that person. I mean all of the above in the vein of constructive criticism. We all want to see the ecosystem becoming more conducive to the exploration of new ideas. Google, at this time, has taken a rather totalitarian position of being the "moral authority", if you will. With that, and so long as you want to be a benevolent dictator, I think, you inherit the responsibility to not cause harm through your actions.

Having said that, until things change I have no choice but to treat your offerings as something that one simply cannot rely on to build a business. The "Google love" can disappear from your site overnight and you'll have no practical way to fix it. That's not a business, that's going to Vegas.

algoshift··on How My Popular Site was Banned by Google
Matt, I think the main problem (having seen what it looks and feels like on the receiving end) is that Google's solution and treatment of the site owner is, for lack of a better term, rather violent.

Put yourself in the shoes of someone who is not a scammer and is trying to do a good job. Perhaps someone how is learning the ropes. Getting hit with an unilateral, violent and --for all intents and purposes-- permanent action such as seems common in these cases can be devastating.

I'd like to relate a case that I witnessed that was truly perplexing. It involved about 200 domains that were registered with GoDaddy and placed in their "cash parking" program.

They were there for months with no issues whatsoever. One day, the domain owner realized that this cash parking service was Google AdSense with GoDaddy taking a bite of the minimal action. So...he moved all the domains to a product called "AdSense for Sites" (I don't remember the exact name). This services was marketed by Google as a place to park your domains and earn some money through advertising that Google would automagically place on these domains. Same service that had been on these domains for ages through GoDaddy.

The transfer went well and all domains were accepted. No problems. The domains go "live", if you will, and ads start showing as predicted.

Two days later the account is cancelled and the domains are taken off the program citing "suspicious activity". The irony is that the sites --and their content-- were handled entirely by Google through this "AdSense for Domains" product. No self-clicking activity took place whatsoever. No nefarious activity of any kind. This person was far too busy with real business to go around clicking on ads across 200 domains to make $0.25 at the end of the day.

This was simply a transfer to Google for the same service that Google had been providing through GoDaddy for many months, years in some cases.

There was no recourse. No way to speak to anyone. No way to even try to understand what this "suspicious activity" was all about. The account was banned, closed, done...forever.

Now, here's a person who had plans for legitimate and valuable real sites to be launched on some of these domains later on. The whole experience scared him to a point of simply rejecting the idea of doing anything with Google if he could avoid it.

We had no way to provide any kind of an argument to the contrary because of the violent and totalitarian nature of the cutoff. Who would want to do business under those conditions?

The fact of the matter is that AdWords/AdSense generated revenue could evaporate overnight and with no recourse whatsoever. That's a tough pill to swallow for anyone who is a legitimate entrepreneur looking to build value and make some money or earn a living through their efforts.

Scammers are a different matter. However, you seem to treat both groups with the same hammer which, in my humble opinion, is not right.

I now have to advise anyone we work with that any income that relies on Google for either lead generation or direct income (AdSense) has to be treated as though it could evaporate at any time and for any reason without any real opportunity given to restore it in a timely fashion. Without that caveat on the table I couldn't personally advise anyone to use your products.

In a normal business one would engage with ones vendors in order to resolve issues in mutually beneficial ways. In this case it is a one-way street with violent and severe consequences for your customers and partners. That's what you have to fix.

algoshift··on The State of the Art is Terrible
Similar professional experience: I go back to having built rudimentary microprocessors with diode arrays and gates; Creating my own microcode and ALU; Wire-wrapping my own computers using 8080, 6502 and other early processors; Punching in my own mini-os using a hex keypad; Rolling my own Forth-based OS, editor and applications; working with PALs and later on multi-million-gate FPGAs.

I find myself agreeing with the author on many points. The evolutionary progress in computing seems to have stalled a long time ago. The fact that we are still hand-coding loops and such things means that it is hard to move up into a higher level of consciousness, if you will. The paradigm shift we need is one where the programmer is able to think and work in problem space rather than being pushed down into verifying loop counts and semicolons every five minutes.

Back in college I experienced a mind-opening moment when a physics professor insisted that I enroll in a class he was teaching. The class was for a language called APL. I won't go into details here. Look it up if interested. That class and that language changed my view of computing and how computing could work forever. I was taking FORTRAN and C classes at the same time. The contrast between the languages was almost beyond description. While we were mired in do loops and other language-mechanics in FORTRAN and C we were actually solving real problems with APL in very short order...even writing a game or two, database applications and doing some scientific computing. Programmer productivity and the ability to express and solve a problem simply could not be compared. APL felt like it was a century ahead of anything else.

APL lets you focus on the problem space. In a certain way it is like playing the piano, you don't think about frequencies and durations, you think about expression of ideas.

As people focused in languages like C++ (which were easier to grasp and use with equipment available in those days) APL never became mainstream and, to some degree, did not evolve into what it could have become. Ironically, the machines we all have on our desks today provide an incredible environment for a language like APL in terms of available resources and speed.

I am not saying that APL is the end-all. What I am saying is that my path through this craft was altered in a non-trivial manner by being exposed to a very different set of ideas. I find myself longing for feeling that way about the tools I have to use today, particularly when hitting the pavement with languages such as Objective-C and VHDL, which, despite their many supporters are far, very, very far, from providing the kind of evolution and progress we so desperately need in computer science.

algoshift··on Is web security a hopeless pursuit?
You might be assuming tech-capable users. My concern focuses around those like my parents, uncles, aunts, cousins, friends and acquaintances for whom what happens past the keyboard and mouse is as mysterious as can be. Trying to educate users, at some level, is an exercise in futility. It just isn't going to happen.

The situation here is that someone might trust a company like Google (not picking on them...just a good example of the mechanism), download Chrome and start using it for everything. This can happen at home or the office. By doing this they are exposing themselves at the worst possible level to identity theft and worst, without as much as a warning. It's perplexing, to be honest.

My wife would save emails from services that she subscribed to in order to "have the user id and password handy if I forget". Probably half a dozen emails with plain-text passwords on her machine (deleted now after an explanation). There have to be millions of people with similar issues out there.

I'd say that blaming the user isn't quite right in all cases. The sites and companies that expose their most secure information so easily are the real culprits. Google, are you reading this? Fix Chrome please, this security flaw is bad, bad, bad.

algoshift··on Just the Facts: S&P's $2 Trillion Mistake
So...rather than focus on the substance of the post and say something intelligent about a serious subject matter you choose to critique style.

What if I actually wanted to SHOUT?

And, on top of that, you down-vote me for style without knowing my intent rather than on the substance of the post, which is what the voting is supposed to be about.

Have a good one pal.

algoshift··on Just the Facts: S&P's $2 Trillion Mistake
Oh, please...
algoshift··on Just the Facts: S&P's $2 Trillion Mistake
As long as our political system continues to be run on professional politicians who pander to their base in order to keep their jobs we will never fix anything.

Anyone who runs a household, a business, or both, clearly understands that sometimes you have to make decision that are painful in order to survive and grow.

Our elected officials know that the masses would boot them if they make the right decisions for the nation. Our political system isn't about making the right decisions for the NATION, they are about politicians making the right decisions for POLITICIANS and POLITICAL parties.

Imagine this if you will: In the recent budget debates politicians actually expressed concern about what they did in view of next year's elections. Really? What does that tell you?

Fix that problem and our country will flourish. Do not fix it and you will continue to enjoy a front seat to the spectacle that is the destruction of the US from the inside.

Whether you lean liberal or conservative, the truth is that if we don't change you can kiss all you hold dear goodbye because we are only headed in one direction...an it ain't up. Your politicians are too busy trying to get re-elected to actually do what they are supposed to be doing.

If you started over, blank slate, how would you structure government and taxation so that they would produce the right results for the country?

Some key questions apply here:

1- What is the role of government? 2- How much of our lives should government control? 3- What is the purpose of taxation? 4- Should this be a country where the government protects people and companies from failure? 5- If charities and religious organizations operate tax free, shouldn't they be tasked with helping those in need rather than doing it through government programs? 6- The world is complicated. Shouldn't those who aspire to hold office (at various levels) demonstrate competency in the required fields of study much like anyone else applying for a job? 7- How can we stop voting because we like someone, or they speak well, or they look good on TV? All of which are far from qualifying anyone to hold office.

Of course, there are dozens of questions one could ask on this subject.

algoshift··on Judge Finds Apple in Violation of HTC's Newly Acquired Patents
I find this comment in the article to be very interesting:

"the reported industry average for invalidations during IP review is around 90 percent."

It would be very interesting to have a look at stats on patent invalidation reviews. If there's solid data showing that the invalidation rate is around 90% this might be useful as evidence that the USPTO is not doing their job by issuing patents that should never have been issued.

A number like 90% should embarrass anyone who might wish to argue that the system is not broken.

algoshift··on Lion's Mission Control: UX fail, especially for multiple displays
Multiple monitors. Why try to cram it all into one? It makes no sense. It is not uncommon for me to have ten applications open and actively in use. In some cases (say, Excel) multiple files open. On our engineering workstations we have a minimum of three 24 inch monitors. Going back and forth between applications, dragging and dropping data and selecting which application instance you need to work with is fluid and fast. Your Dreamweaver and Firefox example has a trivial solution once you add a second screen.
algoshift··on Lion's Mission Control: UX fail, especially for multiple displays
A keyboard shortcut does not fix a bad UI.
algoshift··on Lion's Mission Control: UX fail, especially for multiple displays
Well, as far as multiple displays is concerned MacOS UX has been broken since day one. It is absolute lunacy to have the menu bar for an application pinned to the first display while the application opens in a second or third display.

Our Macs have two or three 24 inch monitors, which makes you realize just how dumb the whole thing is. If you are working on an application on the left monitor and need to access a menu item you have to mouse all the way over to the middle monitor and then back. Do this 200 times a day and you very quickly realize just how stupid the whole thing is.

Furthermore, the menu bar might not necessarily contain menu items for the application you are looking at because you happen to have clicked on the desktop or another application.

Yes, of course, you can mentally manage the concept. That does not mean that it is a good idea.

Linux, Irix, Solaris, Windows and other OS GUIs have gotten this right from the very start. The application is a self contained window and every instance travels with its own controls. No need to mouse across 72 inches of monitors to get to a menu.

algoshift··on Why doesn't every company buy developers the best hardware?
Minimum two large monitors, say, 24in 1920 x 1200. Preferably three. This, in my opinion, enhances productivity far more than the difference between a 3GHz and 4GHz machine.

That said...fast is good...faster is better...ridiculously fast is just fine!

All of our workstations have a minimum of two monitors, some three. A few are overclocked and use fluid cooling to keep them from going up in flames.

algoshift··on Apple deals massive patent blow to HTC, Android in serious trouble
OK, well, yet another US Patent that virtually any engineer with only two neurons left in their brain would say: "Yup, been there, done that".

Patent number 5,946,647 describes recognizing text within strings and doing something with it. That's the basics. OK, well, that has been done since the very first computers were put to use.

Let's see, yup, my HP41 calculator can do that. It was introduced in 1979.

Let me remember...yup, computers before that date did that sort of thing too. What do interpreted language processors do? Scan strings for tokens and take actions based on what they find.

Just check out the History of AI page on WikiPedia: http://en.wikipedia.org/wiki/History_of_artificial_intellige...

...my guess is that most anything that this patent covers was probably already being done in the 1950's in some form. Modernizing the form to take advantage of, say, touch or the concept of links and new interfaces isn't invention, it is something that any skilled engineer would simply implement as part of applying the solution to new hardware.

When are we going to stop granting patents for implementation rather than invention?

Don't get me wrong. I love Apple. This isn't a jab at them. You have to use the system as it exists or someone else will plant a useless patent bomb in your face and stop you cold. They are using the system as they should, defensively and offensively. No problem with them or any other company, really.

My problem is with the patent system and how it is granting patents for implementation rather than invention. Implementation simply requires stating a problem to someone skilled in the art. That person, in turn, is able to find a solution promptly. And so could thousands of others equally skilled in the art. Invention should have a much higher standard of proof or performance.

More importantly, large companies have the financial horse-power to accumulate thousands and thousands of these "been there done that" patents. What this means is that those engaged in true innovation have to walk around in fear of running into this mine-field for the simple act of doing something that anyone skilled in the art would do as a matter of solving every-day problems.

One of the best examples of how far the idiocy goes are a series of patents granted for the use of pulse width modulation for the control of the intensity of an LED light. This is something that is beyond obvious to any student of electronics.

Yet another example of government incompetence at work? Perhaps the USPTO process should be privatized. Think about it. You could then file a lawsuit against the examining firm for approving a questionable application. That would stop the granting of patents for what amounts to prior art cold on its tracks.

'nuff said.

algoshift··on The Problem with the iPhone's Home Button
Apple's insistence on trying to overload one and only one button with all of this functionality is the real problem. I understand "cool" design. However, you can't beat hardware buttons and controls when used correctly. The iPhone should have several buttons. Gamers would LOVE this. It should also have a scroll-wheel on the side. I've had several devices with scroll-wheels, most notably blackberry phones. I happen to think that they are fantastic. Need to scroll through your contacts? You can do it with ONE hand. Use your thumb to scroll and click the scroll-wheel button to select.

Touch is neat, but it is also a PITA. Typing on iPhone or iPad is decidedly decades backwards with respect to hard-button keyboards. In addition to this, if you regularly communicate in multiple languages it is impossible to use the auto-completion feature and, therefore, you are relegated to making horrible spelling mistakes.

I like the devices for what they've done to push tech forward but it'd be nice to see Apple put out a new iPhone with something like a clamshell design and a real keyboard along with some multi-function buttons. It would make the platform so much more useful and easy on the users.

algoshift··on Previewing Windows 8 (Video)
Interesting...but I can't see using it for a desktop system. As a heavy user of a number of engineering and software development tools I just can't imagine how this is any good.

For example, I don't see using Solidworks or AutoCAD with my fingers. I also don't see using any CAD/EDA packages like Altium Desiger (electronics circuit design) with my thumbs. The same applies to firmware, software and web development tools (Keil compilers, Altera/Xilinx development tools, Dreamweaver, Komodo). For that matter, I can't even see using Photoshop or Illustrator that way. I could rattle off dozens and dozens of applications that would be seriously impaired by touch. It's cute and sexy, but it is the slowest and most cumbersome way to interact with a computer.

I don't even see using the Office suite like this.

An on-screen keyboard might be the thing to do today...but...and there's only one way to say it...they suck in a big way. Useless for anything non-trivial, even on a tablet. Typing on an iPad with a bluetooth keyboard is orders of magnitude more productive than poking at the screen.

Then there's the question of multiple screen behavior. All of our engineering workstations have a minimum of two large (24in or more) high-resolution monitors. A good number of them have three. There are engineering design applications (like Altium Designer) that use multi-screen environments very effectively to greatly enhance productivity. I need to know how this new UI will affect these scenarios.

In my not-so-humble opinion I have always thought that MS really needed to fix and enhance XP rather than what they've done with Vista and W7. As a power user there's so much in Vista/W7 that makes you say "really?". They've also just about ruined the Office suite. If you were an expert user of the prior generation of Office and had a code base of routines and tools they pretty much made you look like a complete newbie with the new UI and approach. Productivity with Office definitely took a big hit for most tasks for quite some time.

Despite criticism, Windows is a workhorse OS used across thousands of different industries. I really hope MS is very careful about not damaging this user base for the sake of being "trendy". Tablets are great fun, but I don't see doing my day-to-day work on tablets any time soon. Wrong UI.

algoshift··on Poll: Do you support software patents?
The patent office should charge some amount with every software patent application to be used for the determination of obviousness or prior art. Then it should post the problems on sites such as this one or StackOverflow as a request for comments. In addition to that, it should post the problem on a rent-a-coder type site. If any of these produced a result reasonably close to what is being claimed the application is rejected.

Simple and cost-effective. This would be far more efficient than having the uninformed at the patent office make decision from position of ignorance.

algoshift··on The myth of the Lisp genius
I'll take this up a few notches and proclaim that almost all commonly used languages offer "high impedance" when it comes to the jump from thought to the expression of that thought for a machine to execute. This does not mean that they are not useful. It does mean that they are very primitive in many ways.

My life as a programmer and hardware designer started when I hand-built (wire wrapped) my first 8080-based computer way-back-when. Coding was done typing in hex codes into a hexadecimal keypad. Pretty amazing what you could write that way. Wanting more, I wrote a simple version of Forth. Wow! The productivity gain was impressive. Meanwhile, in College, we had to take FORTRAN. I hated it for some reason. Then my Physics professor offered an alternative: If you signed-up for his APL class you could get equivalent credit. Out went FORTRAN, in with APL. I would not learn C until three years later.

The fact that my real programming life started with exposure to the extremes represented by hand-coded hex, Forth and APL probably made me think very differently once I got to C and other languages. APL allows you to think and translate those thoughts and ideas to computer instructions with very little to distract you. The process of programming in C-like languages can be very mechanism oriented rather than problem oriented. By this I mean that you spend a log of time working on how to get the mechanics of the thing to work rather than focusing on the problem domain.

I learned and programmed in Lisp extensively later in life. It was the AutoCAD version of Lisp. I wrote all sort of tools and utilities for AutoCAD and can say that I enjoyed using the language. In terms of productivity and the ability to quickly express ideas, I think it did pretty well. Is it the realm of geniuses? Nothing is.

algoshift··on How much more difficult is it to build a startup with a single founder?
I wonder if age and experience might be a component here. A lot of the internet startups quoted as examples of two founders being ideal were founded by really young people. In that context having support might be an absolute necessity. How does that compare with more experienced individuals in their 30's?

Having been a solo founder all my life I know just how hard it can be. I would not wish some of the lows I have had to navigate on my worst enemy.

If you are unfortunate enough to be in really difficult situations you really need the intestinal fortitude and mental stability to deal with life-changing problems. Few people in their early 20's have had enough life experience to have developed these qualities.

The problem with the co-founder model is that when life is peachy everyone is working hard and having a good time. However, when things turn ugly if all founders are not equipped to manage the situation it can easily turn in to a nightmare. Things like not being able to make payroll, facing lawsuits, facing bankruptcy, catastrophic supply chain problems (manufacturing), etc. can easily create a set of conditions that can break apart a partnership that was great during good times.

While I will not dispute that having like-minded co-founders can be an advantage, I am of the opinion that --for a certain type of businesses-- I'd rather go solo than run the risk of partnering with someone who might become my worst enemy when things become difficult. The right partner, however, can be an incredible asset, no question about it.

I don't think there's an easy universal answer to this question.

algoshift··on Self-Taught Programmers vs CS-Educated Programmers
I couldn't find a way to agree with this.

The difference between mediocrity and brilliance --in ANY field-- lies in something that has nothing whatsoever to do with a formal education. I have met so many people with impressive pedigree's that are clueless to not need further proof. I have also met a good number of people with what I would call "interrupted educations" that focused so intensely on a particular field of study that they truly became masters within that field.

In engineering or cs there's also what happens before university.

In my particular case, I built my first computer way before I saw my first college textbook on the subject. And, by "build my first computer" I mean that I wired the CPU and ALU from discrete components (Who knows how a diode matrix can be used as an instruction decoder?), created my own machine language and coded instructions bit-by-bit into memory.

After that came wire-wrapping 6502, 8080, 8085 and 68000 computers, again, before seeing my first college textbook. And so, it only stands to reason that the focus and drive once in college and out of college was very, very different from that of someone who never had any such experiences and came to college with a blank stare waiting to be taught something they knew nothing about.

algoshift··on Grading systems are obviously broken. Why isn't anyone fixing them?
I don't think that the abolition of grading is a good idea. You need some way to communicate what someone has learned. Current grading systems are meaningless. I can't hire someone with a perfect 4.0 and assume that they really know their stuff.

The example I use all the time is from when I was in college taking subjects like physics and calculus. A few of us were very much hands-on kind of guys that grew up making things and generally connecting with the real world. Other students had never done anything beyond high-school science class. Never a splinter in their finger or trying to make balsa-wood contraption fly.

There was a stark contrast between testing in math and physics because of this. There was a bunch of students that were test taking machines when it came to calculus. Always got A's.

However, when it came time to apply that to a physics test they failed --sometimes miserably-- because there was no real understanding or knowledge.

I find myself re-living some of that as I now help my kids learn science. Dad is no famous for taking the algebra explanation to the garage and grabbing a tape measure, some wood and a handsaw. The function y = x can have a myriad of different domain values depending on what it is you happen to be talking about. This is not what they teach in school and it certainly isn't what they are testing for.

Anyhow, grades need to encode real knowledge. This is what I am striving for in the apps I am working on and hope that some day schools figure it out as well.

algoshift··on Locksmith gets less tips and more price complaints for being faster
Reminds me of a trade-show where we exhibited a new product about ten years ago. The product in question was designed from the ground-up for the real-time processing of very high resolution images. This entailed custom FPGA boards with gobs of custom and innovative Verilog code to make it all go. We also took pride in designing a very nice lightweight aluminum enclosure for the product. Price was about US $8,000. All up, about a year and a half of development time and a non-trivial financial investment.

The product was introduced at this trade-show and it was a success. However, of the hundreds of people I spoke to at the booth only one made a lasting impression that I remember ten years later. This Italian buyer comes over to get a demo. After a 20 minute presentation he asks for the price. Then he picks-up the unit and says: "8000 dollars! Why so light!".

He actually thought we were charging too much based on how light the thing was. Never mind that there was a year and a half of heavy-duty development behind it. He had a mental image of what an $8,000 product was supposed to weigh and that was the end of it.

We switched to heavier steel enclosures (cheaper too!). I couldn't count the number of times I heard people make comments about the weight corresponding in some way to the price of the product.

algoshift··on What's so cool about APL
Having done extensive work with APL (including using it in robotics) I can tell you that I wish the language was more widely adopted.

The power of notation cannot be easily understood unless you have something to provide context. I find that music is good for this. Musical notation, to a trained reader, communicates with great efficiency what a musician needs to know in order to reproduce a piece. It would be unimaginable to write music using words or ASCII symbols. Yes, there are things like tablature for guitar, but they simply can't compare to real musical notation (if you've ever seen an orchestral score you'll know what I mean).

How do you relate if you are not a musician? Perhaps you know math, at least at an advanced casual level. Symbols such as the integral sign, root and others convey ideas that would require many words to describe. The integral of an integral is just two symbols. It takes two to four words to say the same thing.

Beyond this, notation is independent of spoken language. A Russian musician can read Mozart just as well as a French musician.

And so, what APL offers is the power of notation applied to telling a computer what to do. This is incredibly powerful. And, this is why I reject and abhor the APL derivatives (such as J) that sought to eliminate the symbols in favor of ASCII-fying the language. As much as I respect Ken Iverson (APL and J creator) I think he missed the boat by a grotesque margin with J. Notation is a huge part of what makes APL so powerful. Ken himself wrote a paper titled "Notation as a Tool of Thought" while at IBM. I found it here:

http://elliscave.com/APL_J/tool.pdf

I should note that engaging in counting words, bytes or characters as a measure of the effectiveness of a language is probably silly. I have seen such comparisons:

http://stackoverflow.com/questions/3314043/notation-as-a-too...

For the most part they are meaningless. What matters to me is the power of expression and the ability to navigate from the problem domain to the solution domain without the mechanics of programming a computer getting in the way.

In my opinion, a perfect example of a language gone wrong is Objective-C. I program and have programmed in machine code, assembly, FORTH, APL, FORTRAN, C, C++, Basic, Visual C++ (MFC), Visual Basic, Lisp, Java, Javascript, PHP and a few others. I can't remember a moment when I said to myself "this is absolute crap". I find myself in that position every day now that I am touching Objective-C. The basic premise here is that, in my opinion, O-C does not provide me with a better way to do anything. You can name that tune with C, C++ or something like Visual Basic with much less pain and no difference whatsoever in the quality, content and capabilities of the resulting applications. A further indicator is that I firmly believe that virtually no programmer would freely choose to use Objective-C if it wasn't forced upon them. It's a pain in the ass.

Going back to APL. A lot of the comments about APL (going back decades) go something like (paraphrasing) "it looks so strange" or "it's hard to read", etc. The problem with this approach to the language is that it ignores that, in APL, notation has a purpose. And that, in order to understand this purpose and the advantages offered you have to learn the notation. An opinion does not count unless the person issuing that opinion has taken the time to study the language and gain some perspective. Going back to the musical example, it would be like a non-musician complaining that musical notation is "strange" and "hard to read". Well, yeah! It is! If you don't study it. And, without learning this notation you can't be in a position to appreciate what it does and how useful it is.

We need better tools. That's a given. Higher levels of computing cannot be achieved if we are all typing for-loops by hand. We need programming languages that are far more like music is to musicians. Most of today's languages are almost tantamount to describing music by listing spectral outputs and durations in a mechanical manner. With good notation a musician can thing in terms of music and not in mechanical terms. We need to reach the same level of thought abstraction with programming. APL was a huge step in that direction. Probably too far ahead of it's time.

← PreviousPage 3 of 3