I'm afraid that languages like CJam are reserved for pro golfers. I think about that because I get the impression that answers in languages like CJam just need to be accepted.
-
44\$\begingroup\$ Pro golfers? You mean I could be getting paid for this?! \$\endgroup\$– Peter TaylorCommented Oct 23, 2015 at 16:19
-
\$\begingroup\$ Sorry, English is not my first language. I think "pro golfer" means someone that can golf a program very shortly. \$\endgroup\$– XwtekCommented Oct 24, 2015 at 8:40
-
9\$\begingroup\$ I hope I haven't offended you: if so, that wasn't my intention. For what it's worth, when I came across the site I started golfing in Java, but when I saw that GolfScript always won I decided to learn it. My first GolfScript answers were far too long, but practice helps. \$\endgroup\$– Peter TaylorCommented Oct 24, 2015 at 8:46
-
\$\begingroup\$ Don't believe that is will be THAT popular. \$\endgroup\$– XwtekCommented Oct 29, 2015 at 10:38
-
4\$\begingroup\$ @ChristianIrwan Pro means either "expert", or, more pedantically, "some one who gets paid for something". Peter is just troll'in. \$\endgroup\$– Christopher KingCommented Oct 31, 2015 at 0:15
4 Answers
Let's just put it this way — where do experienced golfing language users come from? They certainly don't just fall out of the sky, and must have started somewhere, right?
Without the practice and experience, you'll never get used to the language. But if you don't get started, you'll never gain the necessary practice and experience! Just go for it! If you're willing to learn, chances are you'll be able to pick up tips from other people commenting on your posts, or alternatively you can ask for advice in chat.
-
\$\begingroup\$ Thanks. Actually I'm confused which one I must accept. \$\endgroup\$– XwtekCommented Oct 23, 2015 at 14:16
-
50\$\begingroup\$ i'm actually pretty sure dennis fell out of the sky \$\endgroup\$ Commented Oct 25, 2015 at 16:24
-
3\$\begingroup\$ @undergroundmonorail Dennis created the sky using Jelly \$\endgroup\$– caird coinheringaahin g ModCommented Jun 4, 2017 at 22:53
-
1\$\begingroup\$ @cairdcoinheringaahing To sum up, from the Jelly sky fell Dennis. \$\endgroup\$– user85052Commented Nov 9, 2019 at 14:04
An answer is judged on its content, not on the status of the person who posted it.
- If an established and respected community member posts an answer to a code-golf question that makes no effort to reduce the number of bytes then it will be downvoted.
- If a new member with no experience posts an answer that is not the shortest but clearly makes an effort to compete then it will be upvoted.
Voting is subjective and people have biases, but the competition is open to anyone to enter in any valid programming language.
You will also find that if you post an answer then other people who use that same programming language will often comment on your answer with advice on how to improve it.
Of course you can: anyone can answer any question in any language: there's no restriction upon new users apart from those put in place by Stack Exchange (which Programming Puzzles and Code Golf can't control).
Don't be afraid to go ahead and try and use a golfing language. Just because users like Dennis or Peter Taylor get impossibly short answers in CJam or Pyth doesn't mean you can't have fun trying to learn the language.
I think you are under the wrong impression that golfing in golf languages
is harder than golfing in a mainstream programming language. That's absolutely not the case. In my own humble opinion golfing in C or Assembly is way harder than golfing in any dedicated golfing language.
If you ask me golf languages just look too scary to newbies because they don't have yet a full grasp on what programming actually is, how it works and how abstract machines work. This is especially true for students. They are taught Java or PHP but they are never taught how to actually do the abstract thinking it requires to program in esoteric programming languages.
for(int i = 0; i < arr.size(); i++) foo[i]++;
versus 1?+
. Which is more difficult? None, it's the same basic operation/algorithm just expressed a little bit different. The problem here is, that most newbies don't have a basic understanding of what I call building blocks
such as zipping
, mapping
, reducing
, filtering
and many more. Esoteric programming languages usually operate on a way lower-level whereas golfing language usually operate on a much more high-level basis. If you program in Burlesque for example you don't think in while
-loops, for
-loops, assignments
and the like. You think in much bigger blocks such as filter
then perform a list intersection
and do a map
.
Any good CS student should be able to at least write an addition and multiplication in brainfuck otherwise he may know how to whip up stuff with Angular.js but he hasn't even understood basic programming stuff.
10ro?i{3.%}f[pd
(try online here) is literally the same thing as product . filter (\x -> x
mod3 /= 0) . map succ $ [1..10]
which is the same thing as reduce(lambda a,b:a*b,(filter(lambda a: a % 3 != 0,map(lambda a: a+1,range(1,11)))))
(Python doesn't seem to have a product
function)
In concatenative languages you read from left-to-right, in functional languages with function composition you usually read from right-to-left and in imperative languages it's roughly the same except with a syntax of f(g(h(x)))
instead of f . g . h $ x
. In a concatenative language you'd write x h g f
. Universities fail a lot to teach students different programming paradigms because they are throughput
oriented for the industry. The industry needs Java developers, they don't need people how have a deeper understanding of programming because that understanding isn't required and doesn't pay out.
You should really try out a golfing language someday. It's not as hard as you think and the creators (or community) of those languages are really helpful and you can ask them pretty much for any help you need. It probably will never have any significant impact on your salary as a developer but that's not why we do golfing anyway :D.