Overclock.net › Forums › Software, Programming and Coding › Coding and Programming › Application Programming › What's the most difficult programming language to learn?
New Posts  All Forums:Forum Nav:

What's the most difficult programming language to learn? - Page 3

post #21 of 60
Quote:
Originally Posted by tpi2007 View Post

That's easy to answer - assembly. It's a lot of work, but if you are proficient with it, you can create very efficient programs. The thing is it takes a lot of time to program in assembly given how low level it is, not even all the Windows code is written in assembly, only parts of it.
I think a lot of people are confused....

Assembly is not a programming language per say. It has no universal syntaxis to it and it all depends on the machine/arch/etc it is being programmed for.
PC
(7 items)
 
  
CPUMotherboardGraphicsRAM
Intel Core 2 Duo E6400 Asus P5B Deluxe Geforce GTX 650 Ti 4GB 
OSMonitorAudio
Windows 7 SP1 Ultimate U2312HM Audigy 2 ZS 
  hide details  
Reply
PC
(7 items)
 
  
CPUMotherboardGraphicsRAM
Intel Core 2 Duo E6400 Asus P5B Deluxe Geforce GTX 650 Ti 4GB 
OSMonitorAudio
Windows 7 SP1 Ultimate U2312HM Audigy 2 ZS 
  hide details  
Reply
post #22 of 60
Quote:
Originally Posted by riahc3 View Post

I think a lot of people are confused....

Assembly is not a programming language per say. It has no universal syntaxis to it and it all depends on the machine/arch/etc it is being programmed for.

I'd consider it a programming language as there are standard mnemonics across all architectures (though there are different standards of mnemonics) and it requires translation phase (via compiling) to run on the hardware.

Plus not all programming languages are architecture independent. For example many languages with general signed and unsigned int types will assign the size of the int to the word size of the CPU (ie int on a 32bit CPU will be 32bit int but on a 64bit CPU will be 64bit int). Which is important to note if the size of the integer matters in one of your projects. Then you have language efficiency / compiler optimizations (eg the same source code can perform differently on different architectures due to the way how the compiler renders your code - so if you know you're targeting a specific platform and understand the quirks of your language well, then you will understand which choice of syntax will perform better on that environment). There's also the argument of knowing when to multi-thread and when to poll - the former lends itself to multicore CPUs and the latter lends itself better to embedded systems.

But most importantly of all, Wikipedia calls assembly a programming language. And as we all know, Wikipedia is never wrong tongue.gif
post #23 of 60
Quote:
Originally Posted by Plan9 View Post

I'd consider it a programming language as there are standard mnemonics across all architectures (though there are different standards of mnemonics) and it requires translation phase (via compiling) to run on the hardware.
But most importantly of all, Wikipedia calls assembly a programming language. And as we all know, Wikipedia is never wrong tongue.gif

Sorry to nitpick, but technically assembly isn't compiled, it's assembled ... with an assembler (not a compiler) ... though they are very similar tools.
In most cases with assembly, there is a cardinality of 1:1 between mnemonic and opcode+operands. However with a compiler this relationship is 1:many opcodes+operands.
Assemblers are not compilers

Though I agree with your sentiment, it is standardised enough for it to be considered it's own language. Or better yet family of languages with each set of mnemonics their own dialect.
Felix
(11 items)
 
ESXi 1
(9 items)
 
Dexter
(12 items)
 
CPUMotherboardGraphicsRAM
Intel Core i7 3770S 3.1 GHz Socket 1155 Box  Intel DQ77KB Intel HD4000 integrated gpu STRONTIUM 8GB Sodimm Single DDR3 1600Mhz 
Hard DriveCoolingOSKeyboard
Intel 520 Series SATA3 25nm 120G 2.5' Scythe Kozuti CPU low profile heatsink fan Microsoft Windows 8 Pro w/ Media Centre Corsair Vengeance K90. Performance, MMO, Mechan... 
PowerCaseMouse
Dell 19V 4.62A (Round) PA-10 Original AC Adapter Antec ISK110 VESA Mini-ITX Case, 90-watt adapte... Corsair Vengeance M90. Performance, MMO, Mechan... 
CPUMotherboardGraphicsRAM
Intel Core i7 3770 3.40 GHz 8M LGA1155 Processor Intel DQ77MK Intel HD4000 integrated gpu STRONTIUM 8GB 1600MHz DDR3 Dimm Single Module P... 
Hard DriveCoolingOSCase
SanDisk Blade 4GB Scythe Big Shuriken Rev. 2 ESXi vSphere 5.1 Coolermaster Elite 343 MATX Mini Tower Case Bla... 
Other
Dell X3959 dual port Intel GbE NIC 
CPUMotherboardGraphicsRAM
Intel Ivy Bridge Core i7 3770K Unlocked Quad Core ASUS SABERTOOTH-Z77 PCI-E3.0 x 16 Motherboard Intel HD4000 integrated gpu Corsair Vengeance 16GB (4x4GB) DDR3 1600MHz CL9... 
Hard DriveHard DriveCoolingCooling
Western Digital Scorpio Black 2.5 inch 320GB Western Digital Caviar Raid Edition4 1000GB (1TB) Corsair Cooling Hydro Series H100 Liquid CPU Corsair "Air Series" SP120 Quiet Edition Case Fan 
OSPowerCaseOther
Openfiler 2.99-2 Corsair AX850 850W  Corsair Obsidian 650D Black Mid Tower Case with... Dell Perc 6/i RAID Controller 
  hide details  
Reply
Felix
(11 items)
 
ESXi 1
(9 items)
 
Dexter
(12 items)
 
CPUMotherboardGraphicsRAM
Intel Core i7 3770S 3.1 GHz Socket 1155 Box  Intel DQ77KB Intel HD4000 integrated gpu STRONTIUM 8GB Sodimm Single DDR3 1600Mhz 
Hard DriveCoolingOSKeyboard
Intel 520 Series SATA3 25nm 120G 2.5' Scythe Kozuti CPU low profile heatsink fan Microsoft Windows 8 Pro w/ Media Centre Corsair Vengeance K90. Performance, MMO, Mechan... 
PowerCaseMouse
Dell 19V 4.62A (Round) PA-10 Original AC Adapter Antec ISK110 VESA Mini-ITX Case, 90-watt adapte... Corsair Vengeance M90. Performance, MMO, Mechan... 
CPUMotherboardGraphicsRAM
Intel Core i7 3770 3.40 GHz 8M LGA1155 Processor Intel DQ77MK Intel HD4000 integrated gpu STRONTIUM 8GB 1600MHz DDR3 Dimm Single Module P... 
Hard DriveCoolingOSCase
SanDisk Blade 4GB Scythe Big Shuriken Rev. 2 ESXi vSphere 5.1 Coolermaster Elite 343 MATX Mini Tower Case Bla... 
Other
Dell X3959 dual port Intel GbE NIC 
CPUMotherboardGraphicsRAM
Intel Ivy Bridge Core i7 3770K Unlocked Quad Core ASUS SABERTOOTH-Z77 PCI-E3.0 x 16 Motherboard Intel HD4000 integrated gpu Corsair Vengeance 16GB (4x4GB) DDR3 1600MHz CL9... 
Hard DriveHard DriveCoolingCooling
Western Digital Scorpio Black 2.5 inch 320GB Western Digital Caviar Raid Edition4 1000GB (1TB) Corsair Cooling Hydro Series H100 Liquid CPU Corsair "Air Series" SP120 Quiet Edition Case Fan 
OSPowerCaseOther
Openfiler 2.99-2 Corsair AX850 850W  Corsair Obsidian 650D Black Mid Tower Case with... Dell Perc 6/i RAID Controller 
  hide details  
Reply
post #24 of 60
Hardest in my experience: PAL: Assembly language for the PDP8-E series of machines. There was so little hardware that you only have one register to store data in. Imagine programming in java for example, except you are only allowed to make one variable at a time, and must save data (and instructions) to memory in between most steps.

The hardest, yet practical language is x86 assembly I would guess. C is one of the trickier high level languages in my experience, but maybe that's just because I think pointers are weird. Also, there's some language called Whitespace or something which is coded entirely with whitespace characters. That would certainly be hard to write/read/debug, though the logic is probably quite simple.
Fractal Fury
(9 items)
 
TJ08-e Reborn!
(12 items)
 
CPUMotherboardGraphicsRAM
i7-5930k ASRock X99m Killer AMD Radeon Fury X G-Skill Ripjaws 4 32Gb 
Hard DriveCoolingKeyboardPower
Kingston Hyper-X Predator M.2 Corsair H100i GTX Ducky Shine III (MX Blue) EVGA Supernova 750 G2 
Case
Fractal Node 804 
  hide details  
Reply
Fractal Fury
(9 items)
 
TJ08-e Reborn!
(12 items)
 
CPUMotherboardGraphicsRAM
i7-5930k ASRock X99m Killer AMD Radeon Fury X G-Skill Ripjaws 4 32Gb 
Hard DriveCoolingKeyboardPower
Kingston Hyper-X Predator M.2 Corsair H100i GTX Ducky Shine III (MX Blue) EVGA Supernova 750 G2 
Case
Fractal Node 804 
  hide details  
Reply
post #25 of 60
Quote:
Originally Posted by alcal View Post

Hardest in my experience: PAL: Assembly language for the PDP8-E series of machines. There was so little hardware that you only have one register to store data in. Imagine programming in java for example, except you are only allowed to make one variable at a time, and must save data (and instructions) to memory in between most steps.

The hardest, yet practical language is x86 assembly I would guess. C is one of the trickier high level languages in my experience, but maybe that's just because I think pointers are weird. Also, there's some language called Whitespace or something which is coded entirely with whitespace characters. That would certainly be hard to write/read/debug, though the logic is probably quite simple.
Is that 1 general purpose register, or just 1 register total?
Any stack at all?
I can't even imagine trying to code for that machine, would have been a nightmare!

In response to the actual question, I think it is better rephrased as: Which is the most difficult programming paradigm to learn? Each language has it's own nuances, but in general once you have learned a language within a paradigm, switching between them is relatively easy (though you may not do it well). I would say most procedual languages are relatively easy to learn, with difficulty ranging from very easy to hard at the expense of complexity. Object oriented programming is harder to do well. Then there is functional programming which is a nightmare.
And to the side of all these are the esoteric languages, which are created for the sole purpose of being *hard* and *annoying* and, though they are turing complete in many cases, aren't really used in the real world.
Felix
(11 items)
 
ESXi 1
(9 items)
 
Dexter
(12 items)
 
CPUMotherboardGraphicsRAM
Intel Core i7 3770S 3.1 GHz Socket 1155 Box  Intel DQ77KB Intel HD4000 integrated gpu STRONTIUM 8GB Sodimm Single DDR3 1600Mhz 
Hard DriveCoolingOSKeyboard
Intel 520 Series SATA3 25nm 120G 2.5' Scythe Kozuti CPU low profile heatsink fan Microsoft Windows 8 Pro w/ Media Centre Corsair Vengeance K90. Performance, MMO, Mechan... 
PowerCaseMouse
Dell 19V 4.62A (Round) PA-10 Original AC Adapter Antec ISK110 VESA Mini-ITX Case, 90-watt adapte... Corsair Vengeance M90. Performance, MMO, Mechan... 
CPUMotherboardGraphicsRAM
Intel Core i7 3770 3.40 GHz 8M LGA1155 Processor Intel DQ77MK Intel HD4000 integrated gpu STRONTIUM 8GB 1600MHz DDR3 Dimm Single Module P... 
Hard DriveCoolingOSCase
SanDisk Blade 4GB Scythe Big Shuriken Rev. 2 ESXi vSphere 5.1 Coolermaster Elite 343 MATX Mini Tower Case Bla... 
Other
Dell X3959 dual port Intel GbE NIC 
CPUMotherboardGraphicsRAM
Intel Ivy Bridge Core i7 3770K Unlocked Quad Core ASUS SABERTOOTH-Z77 PCI-E3.0 x 16 Motherboard Intel HD4000 integrated gpu Corsair Vengeance 16GB (4x4GB) DDR3 1600MHz CL9... 
Hard DriveHard DriveCoolingCooling
Western Digital Scorpio Black 2.5 inch 320GB Western Digital Caviar Raid Edition4 1000GB (1TB) Corsair Cooling Hydro Series H100 Liquid CPU Corsair "Air Series" SP120 Quiet Edition Case Fan 
OSPowerCaseOther
Openfiler 2.99-2 Corsair AX850 850W  Corsair Obsidian 650D Black Mid Tower Case with... Dell Perc 6/i RAID Controller 
  hide details  
Reply
Felix
(11 items)
 
ESXi 1
(9 items)
 
Dexter
(12 items)
 
CPUMotherboardGraphicsRAM
Intel Core i7 3770S 3.1 GHz Socket 1155 Box  Intel DQ77KB Intel HD4000 integrated gpu STRONTIUM 8GB Sodimm Single DDR3 1600Mhz 
Hard DriveCoolingOSKeyboard
Intel 520 Series SATA3 25nm 120G 2.5' Scythe Kozuti CPU low profile heatsink fan Microsoft Windows 8 Pro w/ Media Centre Corsair Vengeance K90. Performance, MMO, Mechan... 
PowerCaseMouse
Dell 19V 4.62A (Round) PA-10 Original AC Adapter Antec ISK110 VESA Mini-ITX Case, 90-watt adapte... Corsair Vengeance M90. Performance, MMO, Mechan... 
CPUMotherboardGraphicsRAM
Intel Core i7 3770 3.40 GHz 8M LGA1155 Processor Intel DQ77MK Intel HD4000 integrated gpu STRONTIUM 8GB 1600MHz DDR3 Dimm Single Module P... 
Hard DriveCoolingOSCase
SanDisk Blade 4GB Scythe Big Shuriken Rev. 2 ESXi vSphere 5.1 Coolermaster Elite 343 MATX Mini Tower Case Bla... 
Other
Dell X3959 dual port Intel GbE NIC 
CPUMotherboardGraphicsRAM
Intel Ivy Bridge Core i7 3770K Unlocked Quad Core ASUS SABERTOOTH-Z77 PCI-E3.0 x 16 Motherboard Intel HD4000 integrated gpu Corsair Vengeance 16GB (4x4GB) DDR3 1600MHz CL9... 
Hard DriveHard DriveCoolingCooling
Western Digital Scorpio Black 2.5 inch 320GB Western Digital Caviar Raid Edition4 1000GB (1TB) Corsair Cooling Hydro Series H100 Liquid CPU Corsair "Air Series" SP120 Quiet Edition Case Fan 
OSPowerCaseOther
Openfiler 2.99-2 Corsair AX850 850W  Corsair Obsidian 650D Black Mid Tower Case with... Dell Perc 6/i RAID Controller 
  hide details  
Reply
post #26 of 60
VHDL is a pain.
post #27 of 60
Quote:
Originally Posted by mitchtaydev View Post

Sorry to nitpick, but technically assembly isn't compiled, it's assembled ... with an assembler (not a compiler) ... though they are very similar tools.
Fair point. smile.gif
Quote:
Originally Posted by mitchtaydev View Post

In most cases with assembly, there is a cardinality of 1:1 between mnemonic and opcode+operands. However with a compiler this relationship is 1:many opcodes+operands.
Assemblers are not compilers
Well yeah, I do know what assembly is. The assembled / compiled was more a brainfart (lack of remembering the correct term). Happens a lot with age - I'm told frown.gif
Quote:
Originally Posted by mitchtaydev View Post

Though I agree with your sentiment, it is standardised enough for it to be considered it's own language. Or better yet family of languages with each set of mnemonics their own dialect.
Indeed. It's not unique to assembly either. Many higher level languages could be classed as a family of languages too. BASIC was pretty terrible for this back in the day. As was C and Pascal. Thankfully this is less of an issue these days as many of the lessons of the past have been learned and formal bodies standardise syntax (eg ANSI C, C++11/0x, ISO/IEC 30170:2012 (Ruby), etc).
post #28 of 60
Quote:
Originally Posted by mitchtaydev View Post

In response to the actual question, I think it is better rephrased as: Which is the most difficult programming paradigm to learn?
I still think there needs to be a distinction between "learn" and "program in". Some languages / paradigms are syntactically very simple but perversely that language simplicity breads great complexity at development time (BF is a classic example of that. The syntax of the language takes 5 minutes to learn). Where as some of the scarier looking code can sometimes be a breeze to code in one you've grasped the syntax (Perl is probably one of the easiest languages I used for quickly banging out code - yet it looks like a scary jumbled hash of executable line noise to the uninitiated).

But I'm by no means saying that there's a rule that the complexity of the syntax is inversely proportional to the difficulty to code in. I'd put C++ at both ends of complexity due to it's ability to shoot your foot off and Go at both ends of the easy scale due to it usually having only one way to do things.
Quote:
Originally Posted by mitchtaydev View Post

And to the side of all these are the esoteric languages, which are created for the sole purpose of being *hard* and *annoying* and, though they are turing complete in many cases, aren't really used in the real world.
I don't think that's fair. BF was created as an intellectual exercise to build the smallest compiler possible. lolcode and Chef were invented to be amusing.
post #29 of 60
Quote:
Originally Posted by Plan9 View Post

I'd consider it a programming language as there are standard mnemonics across all architectures (though there are different standards of mnemonics) and it requires translation phase (via compiling) to run on the hardware.
Assembly is NOT complied. Please do not confuse new programmers...
Quote:
Originally Posted by Plan9 View Post

Plus not all programming languages are architecture independent.
What?

The language per say is not architecture dependent.

Quote:
Originally Posted by Plan9 View Post

For example many languages with general signed and unsigned int types will assign the size of the int to the word size of the CPU (ie int on a 32bit CPU will be 32bit int but on a 64bit CPU will be 64bit int). Which is important to note if the size of the integer matters in one of your projects. Then you have language efficiency / compiler optimizations (eg the same source code can perform differently on different architectures due to the way how the compiler renders your code - so if you know you're targeting a specific platform and understand the quirks of your language well, then you will understand which choice of syntax will perform better on that environment). There's also the argument of knowing when to multi-thread and when to poll - the former lends itself to multicore CPUs and the latter lends itself better to embedded systems.
Yet here you do talk about the complier.

The complier cares about this. The code doesnt give a darn (at long as you take in account what the complier does, such as integer interpratation)
Quote:
Originally Posted by Plan9 View Post

But most importantly of all, Wikipedia calls assembly a programming language. And as we all know, Wikipedia is never wrong tongue.gif
http://en.wikipedia.org/wiki/Low-level_programming_language#Assembly

Well then, Wikipedia is never wrong...........
PC
(7 items)
 
  
CPUMotherboardGraphicsRAM
Intel Core 2 Duo E6400 Asus P5B Deluxe Geforce GTX 650 Ti 4GB 
OSMonitorAudio
Windows 7 SP1 Ultimate U2312HM Audigy 2 ZS 
  hide details  
Reply
PC
(7 items)
 
  
CPUMotherboardGraphicsRAM
Intel Core 2 Duo E6400 Asus P5B Deluxe Geforce GTX 650 Ti 4GB 
OSMonitorAudio
Windows 7 SP1 Ultimate U2312HM Audigy 2 ZS 
  hide details  
Reply
post #30 of 60
Quote:
Originally Posted by riahc3 View Post

Assembly is NOT complied. Please do not confuse new programmers...

Assembly is assembled. Its similar enough to compiling.
Ol' Sandy
(28 items)
 
"Zeus"
(12 items)
 
Elite Preview
(6 items)
 
CPUMotherboardGraphicsRAM
Intel Xeon E3-1230v3 Gigabyte GA-Z97X-UD5H-BK MSI Gaming GTX 980 Kingston 32GB (4x8) 
Hard DriveHard DriveHard DriveHard Drive
Plextor PX-256M5S 256GB Samsung EVO 1TB Hitachi HDS721010CLA332 Hitachi HDS723020BLA642 
Hard DriveHard DriveHard DriveOptical Drive
Hitachi HDS723020BLA642 Hitachi HUA722010CLA330 WDC WD10EARS-00Z5B1 TSSTcorp CDDVDW SH-S223B 
CoolingCoolingOSMonitor
Phanteks PH-TC14PE with TY-140's Lamptron FCv5 (x2) Windows 8 Pro 64-bit Dell U2412M 
MonitorMonitorMonitorKeyboard
Dell U2412M Dell U2212HM Dell U2713HM Topre Realforce 87UB | Ducky DK9087 G2 Pro 
PowerCaseMouseMouse Pad
Corsair AX-750 Corsair Obsidian 650D Logitech G700 XTRAC Ripper XXL 
AudioAudioAudioAudio
Beyerdynamic DT-770 Pro 250ohm Schiit Bifrost DAC Schiit Asgard 2 HiVi Swan M50W 2.1 
CPUMotherboardRAMHard Drive
Intel Xeon E5-2620 Super Micro X9SRL-F-B 128GB 1333MHz LSI 9271-8i 
OSPowerCase
VMware ESXi 5.5 SeaSonic SS-400FL2 Fractal Define R3 
CPUMotherboardGraphicsRAM
Intel Core i5-3437U HP EliteBook Folio 9470m  Intel HD Graphics 4000  16GB DDR3 SDRAM 
Hard DriveOS
256GB SSD Windows 10 Insider Preview 
  hide details  
Reply
Ol' Sandy
(28 items)
 
"Zeus"
(12 items)
 
Elite Preview
(6 items)
 
CPUMotherboardGraphicsRAM
Intel Xeon E3-1230v3 Gigabyte GA-Z97X-UD5H-BK MSI Gaming GTX 980 Kingston 32GB (4x8) 
Hard DriveHard DriveHard DriveHard Drive
Plextor PX-256M5S 256GB Samsung EVO 1TB Hitachi HDS721010CLA332 Hitachi HDS723020BLA642 
Hard DriveHard DriveHard DriveOptical Drive
Hitachi HDS723020BLA642 Hitachi HUA722010CLA330 WDC WD10EARS-00Z5B1 TSSTcorp CDDVDW SH-S223B 
CoolingCoolingOSMonitor
Phanteks PH-TC14PE with TY-140's Lamptron FCv5 (x2) Windows 8 Pro 64-bit Dell U2412M 
MonitorMonitorMonitorKeyboard
Dell U2412M Dell U2212HM Dell U2713HM Topre Realforce 87UB | Ducky DK9087 G2 Pro 
PowerCaseMouseMouse Pad
Corsair AX-750 Corsair Obsidian 650D Logitech G700 XTRAC Ripper XXL 
AudioAudioAudioAudio
Beyerdynamic DT-770 Pro 250ohm Schiit Bifrost DAC Schiit Asgard 2 HiVi Swan M50W 2.1 
CPUMotherboardRAMHard Drive
Intel Xeon E5-2620 Super Micro X9SRL-F-B 128GB 1333MHz LSI 9271-8i 
OSPowerCase
VMware ESXi 5.5 SeaSonic SS-400FL2 Fractal Define R3 
CPUMotherboardGraphicsRAM
Intel Core i5-3437U HP EliteBook Folio 9470m  Intel HD Graphics 4000  16GB DDR3 SDRAM 
Hard DriveOS
256GB SSD Windows 10 Insider Preview 
  hide details  
Reply
New Posts  All Forums:Forum Nav:
  Return Home
  Back to Forum: Application Programming
Overclock.net › Forums › Software, Programming and Coding › Coding and Programming › Application Programming › What's the most difficult programming language to learn?