• 0

why the machine like syntax?


Question

Hi,

 

I have been programming for many years now. And I am damn good at it if I say so myself. But what I never liked in programming was the syntax we use. Why is that the compilers or the interpreters are designed to make use of {}, function etc... to distinguish between objects, functions, etc...

 

For example in JAVA you have:

class MyClass {
    String MyProp;
    Integer MyProTwo;
 
    public void hello(){
 
    }
}

Why can't we make JAVA, PHP or C++ compilers to compile or interpret syntaxes that are more elegant. For example:

class MyClass
    s:myprop
    i:myprotwo
    v:hello
          print "i'm awesome"
    end

Or

make class MyClass. Define properties myprop,myproptwo. Make function hello print "I'm awesome"

What I am aiming for is something what .NET has done. You can program .NET applications in C#, J#, C++ etc... Is it possible to have some kind of XSTL bridge, so we programmers can design our own programming syntax? :p

 

myownsynxtax -> XSTL Template -> Mapped to JAVA/C# Native syntax.

Link to comment
https://www.neowin.net/forum/topic/1162504-why-the-machine-like-syntax/
Share on other sites

21 answers to this question

Recommended Posts

  • 0

Because it adds a lot more structure to the code. I personally can't stand languages like VB because I feel like it's a lazy language. It lets you do things that I'd consider bad habit, but work perfectly fine if you do them right, like less structure, sloppy variable definitions, etc. Sure, if you do it right it works as well as anything else, but it's also easy to make a mistake that's hard to find if you ask me. But that's why there are several different languages, so you can choose what you like. If you don't like a more structured language, then don't use it. I learned programming with C and C++ though so like I said, I can't stand the more loosely structured languages, but that's just my opinion.

  • 0

Anything other than rigidly defined structures and keywords are prone to be ambiguous statements. We humans understand each other using natural language fairly well, but every word and combination of words (number of which is rising almost exponentially) still has numerous interpretations depending on context, experience and present circumstances. And so terrible misunderstandings happen, often to tragicomic extent. Even with the best learning techniques and complex actual AI machines would still fail to interpret things the right way and meanwhile waste resources on very complex AI operations. Long story short - if machines would become more human-like, they'd also err like humans.

 

And then - even with rigidly defined structures each language has many coding, naming, spacing and newline conventions that makes readability and reuse, among other things, a challenging affair. If anything, I'd ask for even more strict templates and removal of most conventions.

  • Like 3
  • 0

wrote code like that in turing.  Made it difficult to find where I went wrong with things, took a lot longer to debug.

Plus, it's a pain in the butt trying to read someone else's code when it's clear, let alone a big block of text.

  • 0

Some existing languages are very succint. Take a look at Python or F# for example. Here is the quicksort algorithm in F#:

let rec quicksort = function
   | [] -> []                         
   | first::rest -> 
        let smaller,larger = List.partition ((>=) first) rest 
        List.concat [quicksort2 smaller; [first]; quicksort2 larger]

It's in general not possible to automatically translate programming languages from one to the other because they express different concepts. C++ templates for example have no equivalent in any similar language. .NET allows for language interoperability because they all compile to a common intermediate representation (IL), but even then it's not always possible to decompile F# code to C# or vice-versa.

 

I find that succintness is not an ideal, it's more of a dial that can be turned too far in either direction. Too verbose (i.e. Visual Basic), and it gets tedious to filter out the redundant information. Too succint (i.e. Perl), and it becomes hard to understand what the code means. The C family of langages has been extremely popular because it hits a nice balance between the two.

  • Like 3
  • 0
  Quote
Why can't we make JAVA, PHP or C++ compilers to compile or interpret syntaxes that are more elegant. For example:
Well, for a start, they wouldn't be Java, PHP or C++ compilers.
 
There are languages that have a "looser" structure than C-style languages. Personally I don't much care for any of them, I like the structure/rules that define C-style languages.
  • 0
  On 02/07/2013 at 19:43, roosevelt said:

What I am aiming for is something what .NET has done. You can program .NET applications in C#, J#, C++ etc... Is it possible to have some kind of XSTL bridge, so we programmers can design our own programming syntax? :p

 

myownsynxtax -> XSTL Template -> Mapped to JAVA/C# Native syntax.

 

Go for it. You can always design your own language extensions, or make your own front-end to a compiler.

http://www.cs.cornell.edu/Projects/polyglot/

 

It's basically a source-to-source translation from one language (your creation) to Java:

your_language -> polyglot+your_extension -> pure Java

 

I have written extensions to the Java language before... added Java language support for singleton objects by adding an 'object' keyword, used instead of 'class' to make a class a singleton. Also added support for strong mobility, which is pretty cool.

You can change up the Java grammar completely, make it your own.

  • 0

{ ... } adds a new scope.  You can use that in any area actually and not just around a loop, function, or class.

 

For example:

function test() {
  System.out.println("New scope below!");
  {
     String y = "Test";
     System.out.println(y); //y is only accessible here
  }
  System.out.println(y); //Can't use y here!
}
  • 0
  On 02/07/2013 at 20:00, threetonesun said:

Just code in Python. :laugh:

 

My first thought when I saw the OP's first "more elegant" example was also "Python!" That said, I don't think that Python is as loose as the OP thinks programming languages should be.

  • 0

Work in python for a while, and you'll soon appreciate the braces!

There's only so many times you can start using an editor which uses tabs instead of spaces, only to be chasing a seemingly never-ending "IndentationError: unindent does not match any outer indentation level".

  • 0

I looked into Python and the syntaxes Python offers is just what I was looking for. I also noticed how dead simple Python makes to do certain things (e.g. reading, wrting files or connecting to db). However, in terms of reliabiity and time tested confidence... how good is Python? Java is quite strong, has years of reputation and I am confident it's not going away anytime soon if ever. How about Python... how strong is its community, development and the range of it's modules? I am pretty confident if I there is a feature that needs to be coded in JAVA, chances are its already done. Do you have the same level of confidence for Python?

 

I also looked into wxpython for the desktop GUI... but it choked on me right away. I want to use Python3, but wxpython doesn't seem to support Python 3 just yet. Kind of killed my dream of using the same language to make not just cross platform but web applications too :p

 

I wish JAVA syntaxes were like Python... life would be simpler. I am looking into Ruby as well... RoR already had me excited for a while but I abandoned it due to some of its missing features in compairson to CakePHP.

  • 0
  On 05/08/2013 at 19:20, Brian M said:

Work in python for a while, and you'll soon appreciate the braces!

There's only so many times you can start using an editor which uses tabs instead of spaces, only to be chasing a seemingly never-ending "IndentationError: unindent does not match any outer indentation level".

 

Worked in Python for a while, I now hate braces.

 

  On 13/08/2013 at 06:13, roosevelt said:

I looked into Python and the syntaxes Python offers is just what I was looking for. I also noticed how dead simple Python makes to do certain things (e.g. reading, wrting files or connecting to db). However, in terms of reliabiity and time tested confidence... how good is Python? Java is quite strong, has years of reputation and I am confident it's not going away anytime soon if ever. How about Python... how strong is its community, development and the range of it's modules? I am pretty confident if I there is a feature that needs to be coded in JAVA, chances are its already done. Do you have the same level of confidence for Python?

 

Strong. I'm actually more confident in Python's survival. Java is about 1,700 severe security exploits away from someone somewhere thinking, "Hmm, maybe we should stop using this.". For some reason the first 1,699 didn't phase anyone. In all honesty neither are going away anytime soon. You're safe with Python.

  • 0

Python has a very strong developer community and can definitely be considered mature. The official Python documentation is excellent, and many extremely useful modules ship with Python by default. If those do not suit your needs, you can find a wide variety of Python modules written by other developers.

 

On thing you should be aware of with Python is the difference between the 2.x and 3.x releases: they are intentionally incompatible. Code written for Python 2 likely will not run on Python 3 without some modification. That said, the changes are very well documented - including official documentation for porting Python 2 programs to Python 3 - and the rationale for the breakage is solid: consistency and scalability.

  • 0

By the way I am playing around with Jython... and this blew my mind:

 

from javax.swing import JFrame, JLabel

def show_message_as_window(msg):
    frame = JFrame(msg,
                   defaultCloseOperation=JFrame.EXIT_ON_CLOSE,
                   size=(100, 100),
                   visible=True)
    frame.contentPane.add(JLabel(msg))
    
show_message_as_window("testing...")

 

:o

  • 0

You try writing in AppleScript for a while and you'll love the braces, they tried making that language "easy to use" by using lots of English terms and structure (There's nouns and verbs), but because they've based it off an actual language rather than syntax, it feels like you're reading/writing a badly written novel.

  • 0
  On 13/08/2013 at 06:13, roosevelt said:

I looked into Python and the syntaxes Python offers is just what I was looking for. I also noticed how dead simple Python makes to do certain things (e.g. reading, wrting files or connecting to db). However, in terms of reliabiity and time tested confidence... how good is Python? Java is quite strong, has years of reputation and I am confident it's not going away anytime soon if ever. How about Python... how strong is its community, development and the range of it's modules? I am pretty confident if I there is a feature that needs to be coded in JAVA, chances are its already done. Do you have the same level of confidence for Python?

Python is very mature, although in general I think dynamic languages are on their way out. More and more you see statically typed languages offer the conciseness and productivity of dynamic languages, while offering the type safety, performance and tooling benefits of static typing, i.e. F# (.NET), Scala (Java), TypeScript (Web), Go (Native), Rust (Native), Cobra (.NET), etc.; to a certain extent C# and C++ since they both have limited type inference now (var/auto).

 

Since your original point of comparison was Java, you should note that Java is as verbose and inflexible as classic imperative/OO languages go; even in something relatively similar like C# it's often possible to express the same things in much less code, due to the more powerful type system, better designed libraries and more advanced language features. Overall I think there are much more significant factors than using braces to denote scope or having to prefix methods with their accessibility and return types.

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • 26200 25H2 is shaping up to be a very solid and stable release, hardly any issues with it here on 3 different configurations of computers
    • Samsung Galaxy S25+ 512GB is $220 off for powerful AI and a pro-grade camera by Paul Hill Are you in the market for a premium Samsung phone? If so, check out the Samsung Galaxy S25+ with 512GB of storage. It’s on Amazon right now for just $899, down 20% from its $1,199.99 list price, representing a significant $220.99 saving. This unlocked device is marked as the number 1 new release by Amazon in the Cell Phones category. If you’re interested, act fast as it’s a limited-time deal. The Galaxy S25+ comes packed with AI features under the umbrella of Galaxy AI. Capabilities include Multiple Tasks with One Ask which brings Google Gemini integration for multi-app commands, Now Brief which proactively gives you information you need to start the day, Audio Eraser to remove distracting sounds from your videos, and advanced portrait features. Powering these features is the Qualcomm SM8750-AB Snapdragon 8 Elite (3 nm) processor which handles all sorts of tasks efficiently including gaming, translation, and photo editing. Alongside the processor is 512GB of storage and 12GB of RAM. The S25+ uses a 6.7-inch QHD+ ProScaler Display which delivers vibrant visuals thanks to its use of Dynamic AMOLED 2X with 3,120 x 1,440 resolution and 120Hz refresh rate. Regarding camera setup, the S25+ has an AI camera with 50MP main sensor, 12MP ultrawide, and 10MP telephoto with OIS. There is also a 12MP front camera. This camera setup is capable of 8K video recording, which is impressive. Finally, you get long battery life with the 4,900 mAh and 45W fast charging support so you don’t need to wait long for it to recharge. If you’re an Android user looking to upgrade to a flagship phone without paying the full price, this deal is for you. If you have an eligible phone to trade in, there is an option to do so to claim up to $725 on the upgrade with Amazon.com Gift Card credit. If you’re excited by AI, but your current phone doesn’t support many AI features, this phone could also be a smart choice. Its display is also great for media consumption, and the processor is robust. Finally, if you have a lot of files to store, the 512GB of storage should be ample. Samsung Galaxy S25+ (Icyblue): $899 (Amazon US) / MSRP $1,199.99 This Amazon deal is US-specific and not available in other regions unless specified. If you don't like it or want to look at more options, check out the Amazon US deals page here. Get Prime (SNAP), Prime Video, Audible Plus or Kindle / Music Unlimited. Free for 30 days. As an Amazon Associate, we earn from qualifying purchases.
    • Sniffnet 1.4.0 by Razvan Serea Sniffnet is a network monitoring tool to help you easily keep track of your Internet traffic. Whether you want to gather statistics, or you need to inspect more in depth what's going on in your network, this app will get you covered. Sniffnet is a technical tool, but at the same time it strongly focuses on the overall user experience: most of the network analyzers out there are cumbersome to use, while one of Sniffnet's cornerstones is to be usable with ease by everyone. Furthermore, Sniffnet is completely free and open-source, dual-licensed under MIT or Apache-2.0: if you are interested you can find the full source code on GitHub. Last but not least, this application is totally developed in Rust: a modern programming language to build efficient and reliable software, emphasizing performance and safety. Sniffnet key features choose a network adapter of your PC to inspect select a set of filters to apply to the observed traffic view overall statistics about your Internet traffic view real-time charts about traffic intensity keep an eye on your network even when the application is minimized export comprehensive capture reports as PCAP files identify 6000+ upper layer services, protocols, trojans, and worms find out domain name and ASN of the hosts you are exchanging traffic with identify connections in your local network discover the geographical location of the remote hosts save your favorite network hosts inspect each of your network connections in real time set custom notifications to inform you when defined network events occur choose the style that fits you the most, including custom themes support ... and more! Sniffnet 1.4.0 changelog: New features Import PCAP files (#795 — fixes #283) Enhanced notifications (#830 — fixes #637) Donut chart reporting overall traffic statistics (#756 — fixes #687) Added support for ARP protocol (#759 — fixes #680) Identify and tag unassigned/reserved "bogon" IP addresses (#678 — fixes #209) Show data agglomerates in Inspect page table (#684 — fixes #601) Added Traditional Chinese (Taiwan) translation 🇹🇼 (#774) Added Indonesian translation 🇮🇩 (#611) A Docker image of Sniffnet is now available (#735) Improvements Added new themes A11y (Night) and A11y (Day) based on palettes optimized for Accessibility (#785 — fixes #786) Do not apply new notification thresholds while user is typing them (#777 — fixes #658) Show more information when domain name is short (#720 — fixes #696) Avoid directory traversal when selecting file name for PCAP exports (#776 — fixes #767) Add icon to window title bar (#719 — fixes #715) Update footer buttons and links (#755 — fixes #553) Handle errors to reduce the number of possible crash occurrences (#784) Updated some of the existing translations to v1.3: Portuguese (#690) Ukrainian (#692) Spanish (#805) Fixes Fix crates.io package for Windows (#718 — fixes #681) Fix crash when inserting characters longer than one byte in the text input for byte threshold notification setting (#747 — fixes #744) Remove pre-uninstall script on Linux (fixes #644) Fix typo in Russian translation (fixes #730) Minor fix to service determination algorithm in case of multicast and broadcast traffic Download: Sniffnet 64-bit | Sniffnet 32-bit ~15.0 MB (Open Source) Link: Sniffnet Home Page | Other operating systems | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • Anker announces global recall of five power bank models over fire safety risks by Aditya Tiwari The Chinese electronics brand, Anker Innovations, known for its mobile accessories and power banks has announced a voluntary global recall of five power bank models. The decision comes after the company spotted a potential fire hazard issue with lithium-ion battery cells from a particular vendor. Anker said that it put up a series of quality checks to detect manufacturing issues early in the production cycle, which include component level-audits and supplier testing. The company assured that "while the likelihood of malfunction is considered minimal, out of an abundance of caution, we have decided to initiate a voluntary global recall of several Anker power bank models." Here's the list of the Anker Power Bank models chosen for the global recall: Model A1257 - Anker Power Bank (10K, 22.5W) Model A1647 - Anker Power Bank (20,000mAh, 22.5W, Built-In USB-C Cable) Model A1652 - Anker MagGo Power Bank (10,000mAh, 7.5W) Model A1681 - Anker Zolo Power Bank (20K, 30W, Built-In USB-C and Lightning Cable) Model A1689 - Anker Zolo Power Bank (20K, 30W, Built-In USB-C Cable) If you think you own one of the affected power banks, you can check the model number located on the back or side of your power bank. After that, you can fill out the recall form to start the process and verify the serial number of your affected device. If your power bank is eligible for the recall, you can either get a replacement or receive a gift card for use on the Anker website. It's not offering any refunds in the US at the moment. Anker advises that you should stop using an impacted power bank immediately even if the device functions normally right now. A unit confirmed for the recall could pose the risk of overheating, melting, smoke, or fire. This is the second major recall from Anker in the same month after more than a dozen reports of fires and explosions. The company previously recalled over one million Anker PowerCore 10000 (A1263) power bank units, citing fire safety risks due to a potential issue with the Lithium-ion battery. These power banks were sold in the US from January 1, 2016 through December 31, 2022.
  • Recent Achievements

    • Collaborator
      Mighty Pen went up a rank
      Collaborator
    • Week One Done
      emptyother earned a badge
      Week One Done
    • Week One Done
      DarkWun earned a badge
      Week One Done
    • Very Popular
      valkyr09 earned a badge
      Very Popular
    • Week One Done
      suprememobiles earned a badge
      Week One Done
  • Popular Contributors

    1. 1
      +primortal
      567
    2. 2
      +FloatingFatMan
      189
    3. 3
      ATLien_0
      176
    4. 4
      Skyfrog
      112
    5. 5
      Xenon
      110
  • Tell a friend

    Love Neowin? Tell a friend!