How Does an Engineer Create a Programming Language?

Besides being a software engineer, Marianne Bellotti is also a kind of technological anthropologist. Back in 2016 at the Systems We Love conference, Bellotti began her talk by saying she appreciated the systems most engineers hate —”messy, archaic, duct-tape-and-chewing-gum.” Then she added, “Fortunately, I work for the federal government.”

At the time, Bellotti was working for the U.S. Digital Service, where talented technology workers are matched to federal systems in need of some consultation. (While there, she’d encountered a web application drawing its JSON-formatted data from a half-century-old IBM 7074 mainframe.)

The rich experiences led her to write a book with the irresistible title “Kill It with Fire: Manage Aging Computer Systems (and Future Proof Modern Ones).” Its official web page at Random House promises it offers “a far more forgiving modernization framework” with “illuminating case studies and jaw-dropping anecdotes from her work in the field,” including “Critical considerations every organization should weigh before moving data to the cloud.”

Kill it With Fire by Marianne Bellotti - book cover

Bellotti is now working on products for defense and national security agencies as the principal engineer for system safety at Rebellion Defense (handling identity and access control).

But her latest project is a podcast chronicling what she’s learned while trying to write her own programming language.

“Marianne Writes a Programming Language” captures a kind of expedition of the mind, showing how the hunger to know can keep leading a software engineer down ever-more-fascinating rabbit holes. But it’s also an inspiring example of the do-it-yourself spirit, and a fresh new perspective on the parsers, lexers and evaluators that make our code run.

In short, it’s a deeply informative deconstruction of where a programmer’s tools really come from.

Going Deep

In one blog post, Bellotti invited listeners to “start this strange journey with me through parsers, grammars, data structures and the like.”

And it is a journey, filled with hope and ambition — and a lot of unexpected twists and turns. “Along the way, I’ll interview researchers and engineers who are active in this space and go deep on areas of programming not typically discussed,” the podcast host promised. “All in all,  I’m hoping to start a conversation around program language design that’s less intimidating and more accessible to beginners.”

But the “Marianne Writes a Programming Language” podcast also comes with a healthy dose of self-deprecation. “Let’s get one question out of the way,” her first episode began. “Does the world really need another programming language? Probably not, no.” But she described it as a passion project, driven by good old-fashioned curiosity. “I have always wanted to write a programming language. I figured I would learn so much from the challenge.”

“In an industry filled with opinions, where people will fight to the death over tabs -vs.- spaces, there isn’t much guidance for would-be program language designers.”

—Marianne Bellotti, software engineer and podcast host

Fifteen years into a sparkling technology career, “I feel like there are all these weird holes in my knowledge,” Bellotti told her audience. And even with the things she does know — like bytecode and logic gates — “I don’t have a clear sense of how all those things work together.”

In the podcast’s third episode, Bellotti pointed out that, “for me at least, the hardest part of learning something is figuring out how to learn it in the first place.” She discovered a surprising lack of best-practices documents, she wrote in an essay in Medium. “In an industry filled with opinions, where people will fight to the death over tabs -vs.- spaces, there isn’t much guidance for would-be program language designers.”

Still, her podcast’s first episode showed the arrival of those first glimmers of insight. “Even knowing very little upfront, I had a sense that in order for a programming language to work, there had to be some sense of cohesion in its design.”

Where to Begin?

Her Medium post cited a 2012 article titled “Programming Paradigms for Dummies: What Every Programmer Should Know,” which offers a taxonomy of language types based on how exactly they’re providing their abstractions. That article apparently got her thinking about how exactly a programming language helps communicate the connections that exist between its various data structures — which led to more insights. (In a later podcast, Bellotti even says “technology suggests to its user how it should be used.”)

“Eventually I came to my own conclusions,” she wrote in her Medium article. To be successful at creating her own language, she realized that she needed to think of  programming paradigms like object-oriented or functional programming “as logical groupings of abstractions and be as intentional about what is included and what isn’t.”

Bellotti is also trying to design a language that will work for her specific needs: to know how likely certain types of problems are in a given system, to achieve model resilience. But on her first podcast episode, Bellotti acknowledged that she still had to begin by typing, “How do you design a programming language” into Google —and was surprised by how little came up. (Although she did discover “there’s a whole world of obscure experimental languages that appear in research papers, rack up a host of citations, and never touch an actual computer other than their inventor’s.”)

“I feel like I’ve been struggling to hang pictures around my home and one day someone knocks on my door and introduces me to the hammer,”

—Marianne Bellotti, software engineer and podcast host

So where to begin? Avoiding the standard dry collegiate textbooks like “Compilers: Principles, Techniques, and Tools,” she instead found her way to the book Writing an Interpreter in Go, a book which by necessity also created its own programming language (a modified version of Scheme called Monkey) for its interpreter.

That book’s author, Thorsten Ball, became her podcast’s first guest, explaining that his language was not so much designed as experimented into existence. (Later, other people suggested something similar — that Bellotti “pick something you like in another language and copy the implementation to start, because figuring out all the edge cases from scratch is really hard.”)

In that first podcast episode, Bellotti explained her concern that “tiny little design decisions I don’t even realize I’m making could have dramatic impacts… it does seem to be the case that programmers create languages without being able to fully anticipate exactly how they will be used or how technology will change around them.”

Things Get Complicated

There are moments where it all sounds so simple. (“What you’re doing when you write a programming language is actually writing a series of applications that take string input and translate it into something the machine can execute.”)

But things get complicated pretty quickly, and by episode three Bellotti started to see a pattern: “Confronting what feels like a tidal wave of information is becoming an all too familiar feeling on this project.” Yet, while considering a need for her language’s source code-interpreting parser, she realized that parsers can be auto-generated — as long as she can supply that tool with the necessary grammar rules.

“I feel like I’ve been struggling to hang pictures around my home and one day someone knocks on my door and introduces me to the hammer,” she told her podcast audience.

She ends up talking to a linguist who studied under Noam Chomsky, who refers her to another linguistics professor, who begins by discussing whether language can be learned through the brute-force assimilation of machine learning, and ends up explaining why Chomsky’s “context-free grammar” ultimately became the basis for programming languages and compilers.

But there are resources to discover. Along the way, Bellotti found a Reddit forum about programming language design. (“This subreddit is full of great stories and people will give detailed explanations and encouragement, which is rare on the internet these days.”) She’s also found a forum for people building Domain Specific Languages.

By December, she’d received a comment from a grateful listener who was also writing their own programming language, and was glad to find a relevant podcast. And Bellotti acknowledged in a response that her whole journey “has been so much fun so far.”

Progress is clearly being made. By episode 12, Bellotti considered how hard it would be to add modules to her language. (“From my vantage point, being able to split a system specification into smaller parts means you get to reuse those parts and build progressively more complex systems that are in easily digestible chunks.”) And there’s also already an empty repository on GitHub that’s waiting expectantly for the code to arrive.

Then, in mid-April Bellotti announced that episode 12 would be the last one “for a while. I’ve made some design decisions that I feel really good about, but it’s clear that the only way to validate them is to write code and try things out.”

She’s also spending some time researching how to optimize her compiler, “But really, I just need to just be heads-down, hands-on-a-keyboard for a while on this.”

And so, the podcast has entered a productive hiatus, leaving listeners with this tantalizing promise.

“I’ll be back in a couple of months to let you know how that went.”

Comparison between software engineers and developers

Photo by Christina Morillo on Pexels.com

Many people have used software engineers and software developers as interchangeable terms. At a certain level, they are similar but there are many differences between both job roles as per the priorities and goals of professionals.

Software developer terms have been in the market since 1980 and till the time it reached the 1990s, it was at the peak of its popularity. But after that, software engineer became a much more popular term than a software developer. With this said, here are the basic differences between software developers and software engineers.

The major difference between software engineers and developers is the salary aspect. The salary of the software engineer is much higher than software developers since the engineers are responsible for compiling the developer’s code. However, both the job roles need a computer science degree along with the skill sets.

Software developers and engineers both must be familiar with application architectures, programming languages, DevOps concepts, etc.

Software engineering is held in higher esteem as compared to software development.

How much salary does Cognizant pay to software engineers?

Photo by Christina Morillo on Pexels.com

According to the JobBuzz data, here is the compensation of software engineers that Cognizant offers.

1. Software Developer/ Programmer
Software developers obtain compensation of Rs 2,73,617 per year on the minimum level and Rs 8,58,340 per year on the maximum level. The average salary of a software developer is Rs 4,84,968 annually.

2. Data Warehouse Developer
Annually, the minimum and maximum salary for a data warehouse developer are Rs 2,93,821 and Rs 9,47,472 respectively. The average compensation for the candidates is around Rs 5,30,472 per year.

3. Software Testing Engineer/ Test Automation Engineer
Software testing engineers obtain a salary of Rs 4,74,120 per year. The minimum and maximum compensations are Rs 2,43,227 and Rs 8,11,764 respectively depending on the experience of the candidates.

4. Tech Architect
On average, the salary of a tech architect is Rs 12,04,353 per year. The minimum and maximum compensation depending on the experience of the candidate are Rs 3,31,666 and Rs 23,38,366 annually.

5. Software Quality Assurance Analyst
Software quality assurance analyst compensation is around Rs 4,70,236 per year on average. The minimum compensation is Rs 2,52,693 per year and the maximum is Rs 8,02,490.

The most interesting things about Pune

For new-comers Pune may appear to be arrogant, rude and not-so-friendly, but after spending some time in Pune you will realize that they are actually sweet, a bit arrogant but kind. When you login in Pune you can’t logout.
For them who wants to live in Pune, here are some most interesting things about Pune you should know.

Pune, formerly known as Poona is the second-largest city of Maharashtra, after Mumbai and eighth-most populous city in India.

India’s first indigenously-run girl’s school was started in Pune by Savitribai Phule along with her associate Fatima Sheikh.

Pune is widely regarded as the second major “IT hub of India” and the top “automobile and manufacturing hub of India”
Pune is where Badminton originated in India.

Pune has 21 engineering colleges, which is highest in the world in a given city. There are many popular and old institutes in Pune and because of this in our Marathi language we called Pune as “ Shikshanache Maherghar ” it means Hometown of Education.

Pune has the highest number of software companies in India.

Beside this Pune has some unique things that you will only see in Pune.

1. Puneri Patya

People who mostly come from outside the city come across those ubiquitous Puneri Patya, which are known for their bluntness and arrogance, while they appear funny to the uninitiated. A typical Punekar thinks and acts as though they have the sole right to educate people in their own ways. A Punekar believes in calling a spade a spade. They want order and discipline around them, which is absent when it comes to traffic though. They don’t want to repeat the same thing to visitors or passers-by. Hence, the Patya culture has been thriving in Pune dishing out advice, warnings and at times, threats to those who have not adopted the city’s culture.
From this unique way of expressing their thought we can say that Punekars love to educate others and finding the mistakes of other peoples.
Being a Punekar myself, I never found these Patya strange. However, some people from other cities always made fun of these signages. It seems pun is part of Pune’s life as these signages indicate.

2. Puneri Misal

Famous Puneri Misal you should definitely try if you are traveling to Pune. Misal is like full time meal for Punekars, they can eat Misal all day without getting bored. Misal the local spicy snack of Punekars. It is the all time favourite dish of Punekars and you would find every restaurant and even the smallest hotel at the corner serving them.

3. No work between 1pm to 4pm

In Pune during some time in afternoon like about 2 hours from 1pm to 4pm you will notice that every shop even the smallest one at nook is closed.
Outsiders an those who are new at Pune think this habit of Punekar a bit weird, outsiders find it strange that almost all shops are closed for some hours in the afternoon since their owners take a nap during that time.

4. Puneri Chaha

Pune’s most favourite and famous tea destination “Yewale Amruttulya”. You will find it strange that, a tea shop is as famous as Starbucks. Many people travel far away just to taste “Yewale Amruttulya”, you have to stand in long lines just to taste a tea.

4 Most Sought After Fields in Germany

German education standards are pretty high. Germany is known for the quality of education it provides as well as its globally recognized qualifications. German universities are highly regarded worldwide, besides being among the highest-ranked in the world.

Planning to study in Germany? Here are the four most popular courses to study there!

Engineering

Every student in the world who wants to do Engineering, for them Germany is like a dream country, all of them wants to complete their Engineering in Germany.

Of course you saw this coming, didn’t you? if you didn’t, where do you think most of your luxury cars are made? Comprising nearly 25% of international students, it is one of most popular courses in Germany. Specializations include – Automobile, mechanical and electrical engineering amongst others. Technical University of Munich, RWTH Aachen University, Karlsruhe Institute of Technology, and the Technical University of Berlin are some of the most renowned universities for this course. 

It takes more or less than 4.5 or 5.5 years to complete your Engineering program in Germany including the time required for learning German and the foundation courses. According to recent statistics, Germany has the second highest number of Engineering workers among all employees in the EU. German Universities offers numerous scholarship opportunities for Engineering students, while studying Engineering in Germany you can research and collaborate with the Engineering Industry. If the student manages to secure a position in any of the public university, study in Germany is free for Indian students, just like students from other part of the world. Students just have to pay a nominal semester fee (around 250 to 500 Euros) per semester        

Humanities

Surprised to see this on the list? Well, Germany offers around 6000 courses in the field of humanities. With some of the best- ranked universities in the world for courses in the Humanities. more than 11,000 international students in Germany were seeking a degree in the humanities, in 2019 only.

A majority of the humanities degree programmes in Germany offer integrated modules which give students the opportunity to obtain the necessary practical skills, besides the theoretical ones. German universities make sure to provide students with both, theoretical and practical skills, in order to ensure that once these students graduate, they will be fully equipped to enter the job market with confidence. Humanities programmes will comprise of professionally related events, study semesters abroad, as well as research projects or internships so students understand exactly what they will encounter in the future, in their professions. Students can also choose from a variety of combinations, which further enhances the experience.  There are many best universities where you can purse your love for languages and the social sciences in Germany. Studying the humanities in Germany, in comparison to other countries, slightly more affordable.

Business and Finance

Boasting of one of the best economies in Europe, Germany is one of the best countries to earn a degree in Business and finance and gain practical knowledge. The strong German economy means a constant influx of educated workers – including many English speakers, who are highly sought in Frankfurt’s finance and business communities. The nation’s GDP has continued to grow in recent years. Economic freedom is partly responsible for why the city has become a seedbed for innovation and entrepreneurial initiative. According to Eurostat, amongst the 28 countries in the European Union more than 40% of all patents are held by Germany. Half of the cities in top-30 metropolitan areas for patents are in Germany.

Germany also has one of the lowest unemployment rates at just over 5%. Germany is a global leader in R & D investment that further assures access to top – notch training and resources.

Computer sciences and Mathematics

Due to Germany’s extremely advanced technology, disciplines intertwined with it are always in demand. Germany is an excellent place to work as a computer engineer, as it’s companies invest heavily in development and research, maintaining the country’s results as the biggest economy in Europe and the third in the world. In a 2015 OECD/PISA study, Germany ranked 16th in mathematics as well as in science.

In turn, the employability rate for careers related to these degrees is also extremely high. Once again, these aren’t restricted to these, one can explore course like Scientific computing, knowledge – Based Systems and robotics among other!

WHAT DOES AN ENGINEER ACTUALLY DO?

BY:VAIBHAVI MENON

Engineers, as practitioners of engineering, are professionals who invent, design, analyze, build and test machines, complex systems, structures, gadgets and materials to fulfill functional objectives and requirements while considering the limitations imposed by practicality, regulation, safety and cost. The word engineer (Latin ingeniator) is derived from the Latin words ingeniare (“to create, generate, contrive, devise”) and ingenium (“cleverness”). The foundational qualifications of an engineer typically include a four-year bachelor’s degree in an engineering discipline, or in some jurisdictions, a master’s degree in an engineering discipline plus four to six years of peer-reviewed professional practice (culminating in a project report or thesis) and passage of engineering board examinations.

The work of engineers forms the link between scientific discoveries and their subsequent applications to human and business needs and quality of life. A professional engineer is competent by virtue of his/her fundamental education and training to apply the scientific method and outlook to the analysis and solution of engineering problems. He/she is able to assume personal responsibility for the development and application of engineering science and knowledge, notably in research, design, construction, manufacturing, superintending, managing and in the education of the engineer. His/her work is predominantly intellectual and varied and not of a routine mental or physical character. It requires the exercise of original thought and judgement and the ability to supervise the technical and administrative work of others. His/her education will have been such as to make him/her capable of closely and continuously following progress in his/her branch of engineering science by consulting newly published works on a worldwide basis, assimilating such information and applying it independently. He/she is thus placed in a position to make contributions to the development of engineering science or its applications. His/her education and training will have been such that he/she will have acquired a broad and general appreciation of the engineering sciences as well as thorough insight into the special features of his/her own branch. In due time he/she will be able to give authoritative technical advice and to assume responsibility for the direction of important tasks in his/her branch. Engineers develop new technological solutions. During the engineering design process, the responsibilities of the engineer may include defining problems, conducting and narrowing research, analyzing criteria, finding and analyzing solutions, and making decisions. Much of an engineer’s time is spent on researching, locating, applying, and transferring information. Indeed, research suggests engineers spend 56% of their time engaged in various information behaviors, including 14% actively searching for information. Engineers must weigh different design choices on their merits and choose the solution that best matches the requirements and needs. Their crucial and unique task is to identify, understand, and interpret the constraints on a design in order to produce a successful result.

Engineers apply techniques of engineering analysis in testing, production, or maintenance. Analytical engineers may supervise production in factories and elsewhere, determine the causes of a process failure, and test output to maintain quality. They also estimate the time and cost required to complete projects. Supervisory engineers are responsible for major components or entire projects. Engineering analysis involves the application of scientific analytic principles and processes to reveal the properties and state of the system, device or mechanism under study. Engineering analysis proceeds by separating the engineering design into the mechanisms of operation or failure, analyzing or estimating each component of the operation or failure mechanism in isolation, and recombining the components. They may analyze risk.

5 IITians who excelled in different field .

Indian institute of technology (iits) are the most prestigious institution in india. The IITs are autonomous public technical universities located across India students are mostly attached towards iits because of the High package offered in these institutions. It’s quite obvious that the enterance in theses institute need a lot of Hard work and perseverance. The Institutes of Technology Act, 1961 lists twenty-three institutes. Each IIT is autonomous, linked to the others through a common council, which oversees their administration. So here is the list of IITians who excelled in different field like arts, science & technology.

1.Sundar Pichai

Born in Madras, India, Pichai earned his degree from IIT Kharagpur in metallurgical engineering. Moving to the United States, he attained an M.S. from Stanford University in materials science and engineering and further attained an MBA from the Wharton School of the University of Pennsylvania, where he was named a Siebel Scholar and a Palmer Scholar, respectively. Pichai was selected to become the next CEO of Google on August 10, 2015, after previously being appointed Product Chief by CEO, Larry Page. On October 24, 2015, he stepped into the new position at the completion of the formation of Alphabet Inc., the new holding company for the Google company family. He was appointed to the Alphabet Board of Directors in 2017.

2.Arvind Kejriwal

Arvind Kejriwal is the founder of Aam Admi Party (AAP), and Convenor of the same. He is a politician and a former bureaucrat who is the current and 7th Chief Minister of Delhi since February 2015.In 2006, Kejriwal was awarded the Ramon Magsaysay Award for Emergent Leadership in recognition of his involvement in the grassroots level movement Parivartan using right to information legislation in a campaign against government corruption. The same year, after resigning from Government service, he donated his Magsaysay award money as a corpus fund to found the Public Cause Research Foundation, a non-governmental organization (NGO). He was educated at Campus School in Hisar and at Holy Child School at Sonipat.In 1985, he took the IIT-JEE exam and scored All India Rank of 563.He graduated from Indian Institute of Technology Kharagpur, majoring in mechanical engineering.

3.chetan Bhagat

Chetan Bhagat is an Indian author and columnist. He was included in Time magazine’s list of World’s 100 Most Influential People in 2010. grew up in Naraina Vihar, West Delhi in a traditional middle-class Punjabi Hindu family. Bhagat graduated with a BTech degree in Mechanical Engineering from the Indian Institute of Technology, Delhi in 1995. Bhagat then went on to do an master’s of business administration degree in marketing from the Indian Institute of Management, Ahmedabad (IIMA) and graduated in 1997.

4.raghuram Rajan

Raghuram Govinda Rajan  is a indian economist & former governor of the Reserve Bank of India.Between 2003 and 2006 he was Chief Economist and Director of Research at the International Monetary Fund. From September 2013 through September 2016 he was the 23rd Governor of the Reserve Bank of India; in 2015, during his tenure at the RBI, he became the Vice-Chairman of the Bank for International Settlements. In 1981 he enrolled at Indian Institute of Technology Delhi for a bachelor’s degree in electrical engineering. In the final year of his four-year degree, he headed the Student Affairs Council. He graduated in 1985 and was awarded the Director’s Gold Medal as the best all-round student. In 1987, he earned a Master of Business Administration from the Indian Institute of Management Ahmedabad, graduating with a gold medal for academic performance.

5.Jitendra Kumar

Jitendra is one actor who makes it a point to play relatable characters that we just can’t forget. From Jeetu to Gittu, he has starred in series/movies like Kota Factory, Panchayat, Shubh Mangal Zyada Saavdhan. He has won a Filmfare OTT award in the category of “Best Actor Comedy Series (Male) for portraying Abhishek Tripathi in Amazon Prime’s Panchayat. He did his bachelor’s in civil engineering from IIT Kharagpur .While studying civil engineering at IIT Kharagpur Jitendra kumar started liking acting. Kumar has done many stage plays as the Governor of the Hindi Technology Dramatics Society at IIT KGP where he met Biswapati Sarkar who eventually invited him to join TVF in 2012.

Mokshagundam Visvesvaraya

“15 September Engineer’s Day ”

Nation celebrates Engineer’s Day on September 15 to commemorate the birth anniversary of the greatest Indian Engineer Bharat Ratna Mokshagundam Visvesvaraya.

BORN — 15 September 1860
Muddenahalli, Chikkaballapura, Kingdom of Mysore (now Karnataka, India)
DIED — 14 April 1962 (aged 101)
Bangalore, Karnataka, India
Nationality — Indian
EDUCATION — Central College, Bangalore
College of Engineering, Pune
University of Madras
University of Bombay
PROFESSION — Civil engineer and statesman
AWARDS — Bharat Ratna (1955)

contributions of Sir M.Visvesvaraya

Sir M V was the architect of the Great Krishna Raja Sagara Dam in Mysuru.He designed a flood protection system for the city of Hyderabad by Mussi River.

Hybrid variety of seeds: He was a great force behind developing varieties of Wheat and Rice, which were capable of sustaining variable temperatures, diseases and also gave high yield for the farmers.
Food security: India was highly dependent on foreign imports of food grains to be supplied for the population. The green revolution, headed by Dr Swaminathan, was successful in making India a food grain sufficient economy.