• Log InLog In
  • Register
Liquid`
Team Liquid Liquipedia
EDT 11:22
CEST 17:22
KST 00:22
  • Home
  • Forum
  • Calendar
  • Streams
  • Liquipedia
  • Features
  • Store
  • EPT
  • TL+
  • StarCraft 2
  • Brood War
  • Smash
  • Heroes
  • Counter-Strike
  • Overwatch
  • Liquibet
  • Fantasy StarCraft
  • TLPD
  • StarCraft 2
  • Brood War
  • Blogs
Forum Sidebar
Events/Features
News
Featured News
Serral wins HomeStory Cup 2915Serral wins Maestros of the Game 243ByuL, and the Limitations of Standard Play3Team Liquid Map Contest #22: Results and Winners7Code S Season 2 (2026): RO4 and Finals Preview12
Community News
RSL goes to London! 2026 Offline Finals Nov 21-222Weekly Cups (July 27-Aug 2): SHIN's big week0SC4ALL II: Brood War - $2500 - Dec 5-69SC4ALL II announced - $10,000 prize pool, Dec 5-64PIG STY FESTIVAL 8.0! (13 - 23 August)14
StarCraft 2
General
The Good, the Bad and the 8 Workers Balance hotfix patch 5.0.16b (July 16) Serral wins HomeStory Cup 29 StarCraft 2 at SC4ALL II Invite #4/8 - Percival Protoss AoE skill expression
Tourneys
RSL goes to London! 2026 Offline Finals Nov 21-22 RSL Revival: Season 6 - Qualifiers and Main Event Sparkling Tuna Cup - Weekly Open Tournament PIG STY FESTIVAL 8.0! (13 - 23 August) Tasteless Time Warp: SC Evo Showmatch (May 25)
Strategy
[G] Having the right mentality to improve
Custom Maps
Nexus Wars 2021 GUIDE [M] (2) Industrial Park
External Content
The PondCast: SC2 News & Results Mutation # 537 Hostile Territory Mutation # 536 Railroad Switch Mutation # 535 Assembly of Vengeance
Brood War
General
BW General Discussion ASL22 General Discussion Are you ready for ASL 22? NEW HYPE VIDEO [Personal Project Share] Terran Defense v0.60 Recent recommended BW games
Tourneys
[Megathread] Daily Proleagues KCM Race Survival 2026 Season 3 Escore Tournament - Season 3 SC4ALL II: Brood War - $2500 - Dec 5-6
Strategy
Any training maps people recommend? Odyssey Mineral Stack Saturation Fighting Spirit mining rates Simple Questions, Simple Answers
Other Games
General Games
Nintendo Switch Thread Stormgate/Frost Giant Megathread Diablo 2 thread General RTS Discussion Thread ZeroSpace Early Access is Now Live!
Dota 2
Looking for a Dota Mentor Official 'what is Dota anymore' discussion
League of Legends
[TL LoL EUW IHs] Teemo shall perish TSM pausing esports and CLG Dead
Heroes of the Storm
Heroes of the Storm 2.0
Hearthstone
Deck construction bug
TL Mafia
TL Mafia Power Rank TL Mafia Community Thread NeO.D_StephenKing vs This Guy From 1 Million Dance
Community
General
US Politics Mega-thread Russo-Ukrainian War Thread Iain M Banks Says He Has Cancer And Months To Live European Politico-economics QA Mega-thread The Games Industry And ATVI
Fan Clubs
The herO Fan Club! The Clem Fan Club INnoVation Fan Club
Media & Entertainment
Anime Discussion Thread Movie Discussion! Series you have seen recently... [Req][Books] Good Fantasy/SciFi books
Sports
NBA General Discussion Football (Soccer) Thread TeamLiquid Health and Fitness Initiative For 2023 Formula 1 Discussion MLB/Baseball 2023
World Cup 2022
Tech Support
Computer Build, Upgrade & Buying Resource Thread Simple Questions Simple Answers FPS when play League Of Legend on laptop
TL Community
The Automated Ban List Northern Ireland Global Starcraft
Blogs
Please support my new stand…
Peanutsc
What is a Gamer?
TrAiDoS
Hello guys!
LIN1s
ASL S22 English Commentary…
namkraft
Poker (part 2)
Nebuchad
Customize Sidebar...

Website Feedback

Closed Threads



Active: 4444 users

Ruby sucks, a poem

Blogs > Alzadar
Post a Reply
Alzadar
Profile Blog Joined April 2010
Canada5009 Posts
January 31 2014 17:29 GMT
#1
def ruby_is_the_ugliest_language(why_use_it_ever)
all_the_clutter_of_scheme(but,none,of,the,elegance)
duck = get_thing # is this real
duck = get_banana # why would you do this to me
duck = get_firetruck # fuck I give up
mystery = is_this_a_method_or_a_variable
did_I_mention_the_ugly_naming_standard = true
ruby_annoys_me.each do |day|
get_mildly_convenient_loop_syntax
unless is_it_worth_it?
ruby_sucks
end
end
Thread.new {
multithreading_is_a_joke = true
}
end
end
end
end


****
I am the Town Medic.
MysteryMeat1
Profile Blog Joined June 2011
United States3292 Posts
January 31 2014 19:14 GMT
#2
mystery is a method.
"Cause ya know, Style before victory." -The greatest mafia player alive
Alzadar
Profile Blog Joined April 2010
Canada5009 Posts
January 31 2014 19:19 GMT
#3
On February 01 2014 04:14 MysteryMeat1 wrote:
mystery is a method.


Maybe, maybe not. You can't know without seeing more. Even if you saw the method definition you wouldn't know for sure.

Consider:

mystery = 4

def mystery
return 2
end

puts mystery


This won't even complain about the ambiguity, it just outputs 4. This is why Ruby sucks.
I am the Town Medic.
rafaliusz
Profile Joined December 2009
Poland482 Posts
January 31 2014 19:33 GMT
#4
Does that code actually work?
Alzadar
Profile Blog Joined April 2010
Canada5009 Posts
Last Edited: 2014-01-31 19:49:35
January 31 2014 19:48 GMT
#5
On February 01 2014 04:33 rafaliusz wrote:
Does that code actually work?


It's correct syntax (other than the three superfluous end statements at the bottom), yes.
I am the Town Medic.
Chairman Ray
Profile Blog Joined December 2009
United States11903 Posts
January 31 2014 19:50 GMT
#6
Ah Ruby, I hated it so much.
Alzadar
Profile Blog Joined April 2010
Canada5009 Posts
January 31 2014 20:01 GMT
#7
On February 01 2014 04:50 Chairman Ray wrote:
Ah Ruby, I hated it so much.


Seriously though, duck typing may be fine for a teaching language or a small personal project, but when you're digging through and debugging huge files and/or trying to use big libraries, it's like, what the FUCK does this method return? What kind of shit is this variable holding? What asshole named this method to_m?

end

Also Ruby can't multithread for shit, all you end up doing is context switching on a single core and making everything take 3x as long.
I am the Town Medic.
hp.Shell
Profile Blog Joined April 2010
United States2527 Posts
January 31 2014 20:39 GMT
#8
On February 01 2014 04:14 MysteryMeat1 wrote:
mystery is a method.

lol, +1, high five sir.
Please PM me with any songs you like that you think I haven't heard before!
Logo
Profile Blog Joined April 2010
United States7542 Posts
Last Edited: 2014-01-31 22:25:12
January 31 2014 22:24 GMT
#9
On February 01 2014 05:01 Alzadar wrote:
Show nested quote +
On February 01 2014 04:50 Chairman Ray wrote:
Ah Ruby, I hated it so much.


Seriously though, duck typing may be fine for a teaching language or a small personal project, but when you're digging through and debugging huge files and/or trying to use big libraries, it's like, what the FUCK does this method return? What kind of shit is this variable holding? What asshole named this method to_m?

end

Also Ruby can't multithread for shit, all you end up doing is context switching on a single core and making everything take 3x as long.


Ehhh depends on your developers. If people are good about not being terrible, duck typing can save you a ton of code and still remain workable on large projects. Less so for primitives where it's annoying, but it's nice for some functions that aren't distinct enough to create an object hierarchy for (say load and unload if you're dealing with some sort of widget type things).

Plus it avoids an equally annoying bloat you see in large projects where you have someone doing:
addNumbers(int i, int j)
addNumbers(string i, string j)
addNumbers(int i, string j)
addNumbers(string i, int j)
addNumbers(float i, float j)
... and on and on...
Logo
Alzadar
Profile Blog Joined April 2010
Canada5009 Posts
January 31 2014 22:39 GMT
#10
On February 01 2014 07:24 Logo wrote:
Show nested quote +
On February 01 2014 05:01 Alzadar wrote:
On February 01 2014 04:50 Chairman Ray wrote:
Ah Ruby, I hated it so much.


Seriously though, duck typing may be fine for a teaching language or a small personal project, but when you're digging through and debugging huge files and/or trying to use big libraries, it's like, what the FUCK does this method return? What kind of shit is this variable holding? What asshole named this method to_m?

end

Also Ruby can't multithread for shit, all you end up doing is context switching on a single core and making everything take 3x as long.


Ehhh depends on your developers. If people are good about not being terrible, duck typing can save you a ton of code and still remain workable on large projects. Less so for primitives where it's annoying, but it's nice for some functions that aren't distinct enough to create an object hierarchy for (say load and unload if you're dealing with some sort of widget type things).

Plus it avoids an equally annoying bloat you see in large projects where you have someone doing:
addNumbers(int i, int j)
addNumbers(string i, string j)
addNumbers(int i, string j)
addNumbers(string i, int j)
addNumbers(float i, float j)
... and on and on...


You could achieve a similar thing via regular polymorphism, although that takes a decent amount of foresight and would be hard to implement retroactively.
I am the Town Medic.
docvoc
Profile Blog Joined July 2011
United States5491 Posts
January 31 2014 23:19 GMT
#11
I was so sure this was gonna be about pokemon and I was about to get in here and defend that game to death lol.
User was warned for too many mimes.
Tufas
Profile Blog Joined April 2010
Austria2259 Posts
January 31 2014 23:24 GMT
#12
On February 01 2014 08:19 docvoc wrote:
I was so sure this was gonna be about pokemon and I was about to get in here and defend that game to death lol.


Same thought, but I just wanted to see TL burn.
Where is my ACE flair
Otolia
Profile Blog Joined July 2011
France5805 Posts
February 01 2014 10:28 GMT
#13
Had to dev a FTP in ruby and when I realized there was no high-level storage from ruby-objects to yaml in ruby I cried. Still there is far worse than Ruby.

*shrugs* FORTRAN *shrugs*
Chef
Profile Blog Joined August 2005
10810 Posts
February 01 2014 13:57 GMT
#14
Rails is excellent for quickly developing web-applications. Choose the right tool for the right job. Of course there's certain annoying things about Ruby and the asset pipeline can be frustrating.
LEGEND!! LEGEND!!
Please log in or register to reply.
Live Events Refresh
OSC
13:00
King of the Hill #258
WardiTV1083
EmpressLilyy51
Liquipedia
[ Submit Event ]
Live Streams
Refresh
StarCraft: Brood War
Britney 49212
Shuttle 2544
Jaedong 2142
Light 701
actioN 655
Soma 582
firebathero 408
Larva 375
Mini 372
Soulkey 329
[ Show more ]
BeSt 303
Snow 269
ZerO 176
hero 154
Dewaltoss 142
Rush 124
soO 66
Sea.KH 63
Sharp 61
Pusan 56
Hyun 52
Sexy 48
HiyA 25
scan(afreeca) 22
Rock 19
Terrorterran 19
Hm[arnc] 17
Shine 16
Noble 9
Dota 2
qojqva1420
XcaliburYe81
Counter-Strike
fl0m6510
byalli1047
Super Smash Bros
C9.Mang0222
Mew2King195
Heroes of the Storm
Khaldor142
Other Games
singsing2021
B2W.Neo749
Liquid`RaSZi572
DeMusliM353
Hui .208
XaKoH 146
QueenE67
ZerO(Twitch)12
FrodaN0
Organizations
StarCraft: Brood War
lovetv 12
Kim Chul Min (afreeca) 10
[ Show 12 non-featured ]
StarCraft 2
• Berry_CruncH300
• AfreecaTV YouTube
• intothetv
• Kozan
• IndyKCrew
• Migwel
StarCraft: Brood War
• BSLYoutube
• STPLYoutube
• ZZZeroYoutube
Dota 2
• WagamamaTV915
• lizZardDota280
League of Legends
• Jankos2150
Upcoming Events
OSC
8h 39m
WardiTV Weekly
19h 39m
The Patches Monday
1d
Sparkling Tuna Cup
1d 18h
PiG Sty Festival
1d 20h
PiGosaur Cup
2 days
Replay Cast
2 days
Kung Fu Cup
2 days
Replay Cast
3 days
The PondCast
3 days
[ Show More ]
Replay Cast
4 days
CranKy Ducklings
5 days
Sparkling Tuna Cup
6 days
Liquipedia Results

Completed

Proleague 2026-08-08
CranK Gathers Season 4: BW vs SC2 Team League
Eternal Conflict S2 Finale

Ongoing

KCM Race Survival 2026 Season 3
K-JUNGMAN
Acropolis #5
RSL Revival: Season 6
Esports World Cup 2026: LCQ
BLAST Bounty Summer 2026
BLAST Bounty Summer Qual
Stake Ranked Episode 3
XSE Pro League 2026
IEM Cologne Major 2026
Stake Ranked Episode 2

Upcoming

Escore Tournament S3: W7
CSLAN 4
ASL Season 22
Escore Tournament S3: W8
Acropolis #5 - TRS
Blizzard Classic Cup 2026
Acropolis #5 - GSA
HSC XXX
SC4ALL II: StarCraft II
Kung Fu Cup 2026 Grand Finals
PiG Sty Festival 8.0
Big Dog Cup 2026 Div 1
META DYMY #4
Thunderpick World Champ.
ESL Pro League Season 24
Stake Ranked Episode 4
Logitech G Connect 2026
SL StarSeries Fall 2026
FISSURE Playground #5
BLAST Open Fall 2026
Esports World Cup 2026
TLPD

1. ByuN
2. TY
3. Dark
4. Solar
5. Stats
6. Nerchio
7. sOs
8. soO
9. INnoVation
10. Elazer
1. Rain
2. Flash
3. EffOrt
4. Last
5. Bisu
6. Soulkey
7. Mini
8. Sharp
Sidebar Settings...

Advertising | Privacy Policy | Terms Of Use | Contact Us

Original banner artwork: Jim Warren
The contents of this webpage are copyright © 2026 TLnet. All Rights Reserved.