Adding Natural Language to JavaScript
"You like tomato and I like tomahto" - Let's call the whole thing off

We will never agree on an individual's approach to names, design, or general concepts. It is like trying to cook in someone else's kitchen.  Actually it's like trying to cook in millions of different kitchens all at the same time. We invented language to communicate. In software development we do not communicate... We are not developing software.. we waste time on terminology... the wasted billions of hours looking for the forks... we known what a fork is, we just do not know where someone else put it.  Turn this around... have the system GIVE me the "fork".  "Wife bring me a beer", when that day comes I will be in heaven.

First determine the purpose of a natural language. Is there a reason, and if there is, then we must first determine what that is.

We all assume that a natural language will make program development easier. Wishful thinking and assumptions is not the approach needed. We must first start with an actual purpose and have realistic benefits when designing software.

The first objective that I want to solve, is the uncertainty of purpose of the names used by every programmer. I send more time trying to determine the names of commonly known attributes, and how to alter them. Here I will use natural language to provide common knowledge to programming. Very specifically counter, indexes, and offset. Every program as thousands of uses for counters, yet we spend more time in searching for the names and how to obtain and to alter them, than we do in actual programming. So we start with "the number of"  what, "bytes", "rows", "columns", lines", "four byte integers", "two byte counting numbers",....   Many of these values can be determined by the compiler, those that cannot ,a request for action will be sent to the target in a way that the request might be answered. The point here is to not require the developer to know the internals and actual names of values, but rather the common name. This separates the language from the action.

The job is to not complicate the language so as to make it useless.  No matter what the application is, there should be common phrases that we could use that will improve communication. Also are there common phrases that could be implemented without any effort on the part of the developer?

The articles of speech should be limited to the most common uses.

  • A = the first child of B
  • if (A is a number) ...
  • B = A as a byte array
  • if (A has children)
  • set A as a shared file 

The next area for natural language are common verbs.  These should be designed to be as obvious as possible.

  • Print A
  • Show me the source code of A
  • B = Copy of A
  • B = View of A
  • Tell me about A
  • Delete A
  • Remove A
  • Upload
  • Download B
  • Import A as a table
  • Export A as a PDF

Words that we already know:

File, Folder, Compiler, Assembler, Executable, Disk Drive, Thumb Drive, Screen, Monitor, Memory, CPU, Process, Application,  Number, Character, Text, Date, Time, Duration, Year, Email, Person, Address, Company, Accounting, Supplies, Conference Room, Car, Bus, Travel, Hotel, Index, Offset, Height, Width, Line, Point, Polygon, Matrix, Office, Lights, Mouse, Keyboard, Sort, Select, Print, Open, Run, Close, Download, Upload, Units, Measure, Speed, Child, Parent, Sibling, Route, Invoice, Purchase Order, Table, Row, Column, Name, Identifier, Client, Server, Copy, Delete, Change, Move, Replace, Find, Search, Backup, Restore, Archive, Lines, Format, Structure, Student, Teacher, Man, Woman,  Dog, Cat, First, Give, Day, Week, Month, New, Public, Problem, Big, Small, And, Or, Anyone, Back ,Forward, Bank, Best, Blue, Red, Build, Buy, Camera, Capital, Card, City, State, Cold, College, Style, Create, Data, Direction, Doctor, Door, Draw, Dawn, Event, Example, Expert, Hire, Fire, Factor, Average, Forget, Forward, Give, Glass, Group, Owner, Heat, High, Hold, Hot, Image, Wife, Husband, Interest, Interview, Item, Language, Large, Learn, Level, List, Little, Local, Long, Manage, Medical, Message, Middle, Might, Military, Music, Myself, None, Network, Drag, Occur, Old, Once, Option, Pay, Perform, Plant, Play, Population, Power, Project, Quality, Race, Rate, Read, Remain, Same, School, Science, Season, Sea, Sex, Single, Skin, Smile, Social, Speak, Start, Step, Stop, Store, Story, Table, Today, Training, True, Up, Voice, Wait, Wall, Want, When, Wide, Where, Young, You, Write...

Words that need no documentation. If you then add all the words known to each disciple;

Doctor, Nurse, Medicine, Needle, Therapy, Prescription, Hospital, Scrubs, Antigen, Echocardiography, Enzyme, Patient, Discharge, Tissue, X-ray, MRI, Lungs,Monitor, Inject, Watch, Oncology, GI, Operation, Plumber, Solder, Weld, Joint, PVC, Copper, Case Iron, Toilet, Install, Rough in, Finish, Hang, Street 90, Cap, Inspection, Septic, Men's,  Water, Gas, Return, Heater, Sink,...

The task of software development becomes very small.