Earlier quoted context omitted.
The difference is that it was easier in the past for people to program casually; it hasn't gotten easier. Consider the microcomputers of the 80's: it was very difficult to own one without knowing at least a bit of some BASIC dialect. Consider microcomputers now: most people get away without ever knowing what it's like to write a program. People who actually want to learn how to program must go out of their way to do…
You used to have to type in 1s and 0s on a keyboard, or cut little square holes in a piece of cardboard with an Exacto knife. You had to learn what opcodes were represented by those 1s and 0s, in which contexts, and reverently hand your stack of cards full of holes to the Keeper of the Card Reader. You had to really, really want to program, with books open on the desk and your lap, and a grilled cheese sandwich holdi…
Where is the casual programming?
71–80 of 83 posts
Re: Where is the casual programming?
#72Earlier quoted context omitted.
Give this a shot http://docs.racket-lang.org/quick/index.html See the bottom link too.
Certainly does a lot of what I wish in a casual programming tool! I just wish the IDE had the autocomplete, quickfix, refactoring features of Eclipse...
You don't need these features in Scheme. By not needing, I mean that they get in the way more than they help. Give it a shot.
Re: Where is the casual programming?
#73Earlier quoted context omitted.
> var n = 42; n.[[TAB]] No auto-complete. It's severely limited to only live objects. Which may be an argument for REPL, but it's not an argument for "dynamic languages can have autocomplete".
I have intelligent object method/property auto-completion in Python in Emacs. The argument for "dynamic languages can have autocomplete" is that they already do in a variety of modern editors (like Emacs) and IDEs (like PyCharm et al). You're not only ignorant, but proudly so.
For example, the following code does not give me any auto-completion suggestions in eclipse or in vim:
str = "hello"
test(str)
def test(val):
val.[TAB]Re: Where is the casual programming?
#74Earlier quoted context omitted.
You used to have to type in 1s and 0s on a keyboard, or cut little square holes in a piece of cardboard with an Exacto knife. You had to learn what opcodes were represented by those 1s and 0s, in which contexts, and reverently hand your stack of cards full of holes to the Keeper of the Card Reader. You had to really, really want to program, with books open on the desk and your lap, and a grilled cheese sandwich holdi…
Just because it's not difficult doesn't mean it's casual. There's a higher barrier to entry now than there was in the 80s, and that makes programming much less accessible to the casual computer user. The average user perceives coding as a feat attainable by only wicked smart, socially inept nerds.
I remember what it was like beginning programming in the 80's and trust me, it was much harder then.
Back then BASIC was the only language I could get for free. In order to learn C I had to (1) buy an upgraded version of my computer (CoCo 3) that had more memory to run an OS, (2) buy the OS-9 operating system (3) buy a C compiler for said OS (4) buy the K&R book. In total, I think that cost around $400, which explains why I didn't learn C until after I graduated (EE, not CS) and had a job to pay for that stuff.
Last year, to learn Javascript I opened my browser, got a free download of Notepad++, searched a Javascript tutorial and began programming. If I wanted to learn C from scratch today, it would be as simple as downloading gcc. Not to mention that expert help if I get stuck is all over the net.
Getting started in technology, at any level I can think of, is much easier today than at any time in the past.
Re: Where is the casual programming?
#75Earlier quoted context omitted.
> var n = 42; n.[[TAB]] No auto-complete. It's severely limited to only live objects. Which may be an argument for REPL, but it's not an argument for "dynamic languages can have autocomplete".
I have intelligent object method/property auto-completion in Python in Emacs. The argument for "dynamic languages can have autocomplete" is that they already do in a variety of modern editors (like Emacs) and IDEs (like PyCharm et al). You're not only ignorant, but proudly so.
I was saying that "Even something as Spartan as the Javascript REPL in Chrome" can't do "real" autocomplete.
Re: Where is the casual programming?
#76Where is the casual carpentry? Why can't I make my own tables and chairs? How do I know which tools to buy? Why so many different types of screw heads with no clear indication in the box as to which kind should I use? Tapered shank what? How do rivets even work?! And it's not like it's a new thing either we have had wood manufacture for millennia! IMHO some things will never get past the hobbist-accessible stage.
I agree. If the OP was talking about mechanics, he could be saying: "I want to build a hotrod from scratch, but oh look so many little parts!" . I think that what many people fail to realize is that although the intended purpose seems simple enough, the tools to do it are sitting atop so many levels of abstractions that without prior knowledge you just have no way to figure where to start assembling the parts. The on…
What you describe is a very common problem on electronics forums. Consumer electronics are cheap, sophisticated and ubiquitous, so the newcomer to electronics DIY thinks that a cell phone as a first project should be easy and then gets angry when everyone tells him how hard it is to actually design & build one and that he should start by learning how to make an Arduino blink an LED instead.
When I consider all the problems that had to be solved to make a disposable $20 phone, it's absolutely mindblowing that we could ever have reached this point in technology.
Re: Where is the casual programming?
#77Earlier quoted context omitted.
And F# is not the only statically typed language with a (built-in or out of the box) REPL: ML, Haskell, OCaml, and Scala all have REPLs. Some of these predate Java and C#, but I don't know what it is about those languages and the cultures around them that has ignored the value of a REPL. I guess part of it is just inertia at this point, but it's definitely one of the biggest things I miss when working in Java on Andr…
The problem is F# has arguably the best tool chain out of all of the languages you listed. Hell, I still have problems getting Scala to work with Netbeans 7.1 and I'm not sure of any IDE (for windows at least) for ML, Haskell or OCaml.
Re: Where is the casual programming?
#78Earlier quoted context omitted.
Just because it's not difficult doesn't mean it's casual. There's a higher barrier to entry now than there was in the 80s, and that makes programming much less accessible to the casual computer user. The average user perceives coding as a feat attainable by only wicked smart, socially inept nerds.
Are you serious? The barrier to entry for learning programming has never been lower than it is now. I remember what it was like beginning programming in the 80's and trust me, it was much harder then. Back then BASIC was the only language I could get for free. In order to learn C I had to (1) buy an upgraded version of my computer (CoCo 3) that had more memory to run an OS, (2) buy the OS-9 operating system (3) buy a…
My point was that you now have to go out of your way to learn to program. There are a lot of options, and casual programming involves a lot of libraries (which usually themselves depend on libraries). Those microcomputers were very inviting in that regard.
Re: Where is the casual programming?
#79He sounds like's he's described VBA
VBA was a very nice step towards the goals I've described!
Re: Where is the casual programming?
#80Stepping back, what does "casual programming" mean anyway? Automate certain repetitive tasks? Do some complicated calculation? Write a two-player tic-tac-toe? Make a Sudoku solver?
For the most part, "casual programming" for people who are not into the abstraction layer have been mostly done in Excel/VBA. Most people just don't realize that IS a valid form of "programming" (albeit a very limited subset of it). It's like people who play Angry Birds/Farmville (or Minesweeper in the '90s) obsessively don't consider themselves as gamers, even though they might have spent more time "gaming" than most Counter Strike "gamers".
On the other hand, if you want to dig more into programming, tools like Lego Mindstorm or Scratch teach the concepts rather beautifully. It makes moving onto an actual general purpose programming language much easier.