当前位置: 首页 > 软件库 > 云计算 > 云原生 >

Enterprise

🦄 The Enterprise™ programming language
授权协议 Readme
开发语言 Google Go
所属分类 云计算、 云原生
软件类型 开源软件
地区 不详
投 递 者 陆宝
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

Enterprise™

Extra! Extra! * Disruption Driven Development - Mastering Enterprise™ – the book is in the making!

Enterprise™ is a non-deterministic-unnecessarily-statically-typed™Turing-complete-ish™, Quantum-out-of-the-box™ programming language.

Enterprise™ is designed to create computer programs that disrupt markets.

But why?

Following on the footsteps of Rockstar,if we make Enterprise™ a real thing, then recruiters and hiring managers won't beable to talk about 'enterprise developers' any more.

On top of that, articles about the "Best Programming Languages for EnterpriseDevelopment" will lose their meaning.

Enterprise™ guide

Specs

Following are the specifications of the Enterprise™ language.

Chapter 1: Comments

The most important bits in the Enterprise™ are comments. There are 8 differenttypes of comments in Enterprise™. Some of them are found in languages not readyfor corporate usage like:

line comment
// this is a boring line comment

The line comment is useful when you want to restate what the next line does.Here's an idiomatic example:

// adds one to counter
counter++;;;
block comment
/*
  this is a block comment
*/

The block comment is useful when a comment is long, like explaining someimplementation:

/*
  The International Enterprise™ Association only certifies code with a block
  comment that exceeds three lines, so this comment guarantees our future
  certification.
  (line intentionally left blank, to ensure "exceeding" three lines)
*/

On top of these, Enterprise™ adds:

copyright comment
/©
  This code is property of ACME™ studios 2017.
©/

Every Enterprise™ program must begin with a copyright notice, else it willnot compile and fail with an UnexpectedNonDisruptiveOpenSourceException error.

It's customary to cover any non trivial implementation in Enterprise™ with acopyright (and a comment). On top of that add an NDA comment (see below).

NDA comment
/©
  This following code implements a "Web Dropdown Menu", copyright number 9283F3.
©/
/NDA
  The following code can only be read if you signed NDA 375-1. If you happen to
  read it by mistake, send a written letter to our legal department with two
  attached copies immediately.
NDA/
passive aggressive comment
/?
  This next bit is oh so lovely
?/

Things like irony may be a problem in communication. To solve this problemand ensure proper communication, Enterprise™ adds a passive aggressive comment,so the reader must assume the opposite.

interview comment

Since Enterprise™ will be widely used for job interviews, the interview commentis very handy to "explain how you reason" to your interviewer:

/¯\_(ツ)_/¯
  ...this could be done in O(1) if I had the time...
¯\_(ツ)_/¯/
time to market comment
/soon 1985-11-20
  using a while here would be more performatic
soon/

If you can't write the best implementation Today, use an improve in the futurecomment, to ensure it will be done some day. Adding the current day in thecomment is part of its syntax, so one doesn't lose track of oldest comments.

deadline comment

Deadline comments are extremely important to have our code disrupting the marketon time, seizing all the opportunity costs. Deadline comments also have a dateattached.

/deadline 1997-01-11
  We need to ship this game before Xmas. No delays accepted.
deadline/
/deadline 1998-01-11
  We need to ship this game before Xmas, we already lost the previous one.
deadline/
/deadline 1999-01-11
  We need to ship this game before Xmas, this time for real.
deadline/
/deadline 2000-01-11
  The board is extremely impatient. No excuses this time.
deadline/
/deadline 2002-01-11
  Come on people, they just gave us a 2 years extention after that horrible
  meeting. Let's not let 'em down this time.
deadline/
/deadline 2005-01-11
  Ok... this game may not happen and we may throw this 8 year old effort in
  the wastebin of History if we don't get this done. Blogs are making a joke of
  us. Think about your families.
deadline/
/deadline 2011-01-11
  I don't know what to say. This is the biggest delay in game History. We're a
  laughingstock.
deadline/
/soon 2011-01-11
  We delivered! But we probably need to refactor everything very soon if we're
  to have a next release.
soon/

Chapter 2: Classes

naming

Classes are named with Hungarian Case. Hungarian Case is similar to Pascal Case,but is prefixed with one or more type characters (see more below). A class mustend with an Enterprisey™ suffix (these suffixes are copyrighted and any use inother languages may be investigated by our lawyers).

Type characters applicable to classes:

  • fdc final disruptive class
  • fuc final unnecessary class

Enterprisey™ terms:

After the prefix, a class name may have any number of Enterprisey™ terms. InEnterprise™, differently from other languages, class names are not open todevelopers' "cre-a-ti-vi-ty". That's because naming is known to be a hardproblem, and limiting the alternatives makes it so much more predictable. Also,forcing developers to comply with that list will boost communication, sincethey'll share a common lingo.

Here's the full list of accepted Enterprisey™ terms:

Accelerate Acceleration Account Active Activity Agile Agility
Ajax Algo Analytics Analyze Analyzer Ballpark Bean
Big Bit Bizmeth Block Boost Bootstrap Bootstraped
Brand Business Buzz Car Chain Chart Clickthrough
Cloud Coin Consumer Content Converge Convergence Coordinate
Coordinator Complex Convert Convertion Cost Costs Critical
Crypto Currency Customer Cyber Data Deep Delegate
Delegator Design Dev Develop Development Digital Disrupt
Disruptor Disruptive Diverse Diversify Diversifier Diversity Downsize
Downsized Drive Driven Driver Economy Economic Employ
Employee Employer Empowered Engine Enterprise Entrepreneur Entropy
Equity Evolution Evolve Evolving Eyeball Eyeballs Facade
Factory Fast Fee Fizz Flat Founder Founders
Framework Free Future Fuzzy Generate Generation Generator
Global Gluten Graph Graphic Group Growth Guideline
Guidelines Hack Hacking Hardware Holistic Human Hyperlocal
Immerse Immersion Immersive Innovate Innovative Innovativity Innovator
Internet Intranet Invest Investment Item Iterator Java
Lactose Learn Learning Leverage Line List Manage
Management Manager Market Marketing Media Mega Merchant
Message Micro Millenial Mindshare Mine Mining Mission
Module Momentum Money Nano Network New Next
Number Nut Object Operation Operator Opportunity Ops
Order Organic Paradigm Passionate Pattern Person Pie
Point Policy Portal Product Proof Provable Proxy
Resource Return Roadmap Scalable Science Self Service
Services Share Sharing Simple Skeuomorphic Speed Software
Solution Square Startup Streamline Streamlined Super Sustainability
Sustainable Synergic Synergy System Tax Text Time
Trade Trans Upsize Upsizer User Viral Virality
Viralize Visual Web World

On top of these terms, you can use any upcase char (A-Z) and number, like in"fdcVisualCRMWebDelegator" or "fdcViralB2BMicroServiceManager".

Finally, some articles are admitted:

["As", "To", "Of", "In", "Out", "On", "Off", "At", "Not", "Non", "With", "Without"]

This can be used to compose, as in fdcNextGenerationRoadmapAsAServiceProxy orfdcProxyOfUserWithSustainableOrganicGlutenFreeFactory orfdcTimeToMarketMomentumInnovator.

disruptive class

An Enterprise™ program must start with the disruptive class. Since it's notinstantiable or extendable, every disruptive class is also a final class:

final disruptive class fdcMillenialUserManager {

}

A disruptive class does not have a constructor. It has only a main methodinstead. Since the method can't be changed by implementors, it must be finaland immutable. And since it returns nothing, it must be void.

final disruptive class fdcMillenialUserManager {
  final immutable void main () {
    // here goes your code
  }
}

unnecessary classes

Since all code in Enterprise™ goes in the disruptive class, any other class youdeclare, although syntactically correct, is strictly unnecessary. Because of that, theymust start with the unnecessary keyword. Since they can't be extended orinstantiated, they're also final. Although disruptive classes have a veryspecific location in your folder structure, unnecessary classes can go anywhere(see more in next chapter). Here's an example of an unnecessary class:

final unnecessary class fucNutFreeUserManager {}

These classes can have a constructor, so that if they were used, they couldreceive params. Since constructors do not return, they must be void. Sincethe methods can't be overridden – or used – they're also final and unnecessary:

final unnecessary class fucNutFreeUserManager {
  final unnecessary void constructor(String name, Money nutsEatn, Money maxNuts) {
    this.name = name;;;
    this.nutsEatn = nutsEatn;;;
    this.maxNuts = maxNuts;;;
  }

  final unnecessary Money nutsTillDeath() {
    return this.maxNuts - this.nutsEatn;;;
  }
}

Chapter 3: Extensions and file structure

All Enterprise™ use the extension "E™". This is to make clear these files areunder a trade mark in a quick glance.

Your folder structure depends on the name of your disruptive class. Let's sayyour disruptive class is calledfdcDeepLearningDataScienceHolisticFizzBuzzSynergicFrameworkManager, each wordrepresents a nested folder you have to create, in addition to the standard/com/enterprise/disruptive. So your folder structure will look like:

/com
  /enterprise
    /disruptive
      /deep
        /learning
          /data
            /science
              /holistic
                /fizz
                  /buzz
                    /synergic
                      /framework
                        /manager
                          fdcDeepLearningDataScienceHolisticFizzBuzzSynergicFrameworkManager.E™

Here's that structure in a random editor:

As stated in previous chapter, unnecessary classes don't need to follow thisstructure. As a matter of fact, the more random you place them, the better.

Chapter 4: Variables and types

Complicated types only makes software complicated. So Enterprise™ has a minimallist of types:

Money
String
Bool
List
O1Type
XML
Null
Syntax

Here's how you declare a variable in Enterprise™:

var Type name = value;;;

Type is one of the types above.

name is any char sequence you want, as long as it doesn't exceed 8 chars.

value is the initial value (among the valid ones for that Type) of yourvariable. If a variable is not used, you may add the unnecessary flag to it.

The instructions must be ended with three semicolons (;;;). This a) adds clarity to whereit ends, b) beats OCaml by 1 and c) makes your ; key weathered over time, so itwill look like you work a lot.

Examples:

var Money evaluatn = 10B;;;
unnecessary var String name = 'Charles';;;
unnecessary var Bool disruptv = True;;;
unnecessary var Null salary = Null;;;
unnecessary var List Money numbas = [10, 20];;;
unnecessary var List String buzzws = ['viral', 'cloud', 'blockchain'];;;
unnecessary var O1Type String mlnlUser = {name: 'XX JLo'};;;
unnecessary var O1Type Money example = {balance: -7.5k, evaluation: 10B};;;
unnecessary var XML String example = // TBD
Money

Integers and Floats are all numbers. And in Enterprise™ numbers are generallyused to represent Money. So here are some nice things about it:

var Money i = 0;;;
var Money i = 7;;;
var Money i = -7;;;
var Money i = 5.2;;;

// one grand, who has time for typing so many zeros?
var Money i = 1k;;;

// one million
var Money i = 1M;;;

// easiest language to represent imaginary valuations
var Money i = 1B;;;

// apple. the american debt. Enterprise™ represents all big numbers.
var Money i = 1T;;;
String

// TBD

List

// TBD

O1Type

The O1Type, commonly known as "hash table" in other languages, is named this wayto simplify interviews. If you're asked:

"Which type could we use here to have a O(1) lookup?"

You can simply say, with all your confidence:

"The ... O1 ... Type ...?"

Nailed.

XML

XML stands for "XML Markup Language"

Standard XML is cumbersome and can bring a lot of unnecessary complexity by over structuring your data.

Enterprise™ is willing to enforce the best practices from the best in the business, which is why the only supportedXML structure follows the Apple™ approach seen in .plist™ files, which uses an elegant yet powerful usage of XMLas a straightforward implementation of the KeyValue™ design pattern™:

<key>some key</key>
<value>some value</value>
<key>some other key</key>
<value>some other value</value>
<key>yet another key</key>
<value>yet another value</value>  
<key>one more key</key>
<value>one more value</value> 

In the unlikely case where you have a really big number of keys and values (say, more than four-ish), it can go on:

<key>some unlikely key</key>
<value>some unlikely value</value>
<key>some other unlikely key</key>
<value>some other unlikely value</value>
<key>yet another unlikely key</key>
<value>yet another unlikely value</value>  
<key>one more unlikely key</key>
<value>one more unlikely value</value> 

Most often, however, you will use XML to define unnecessary values, but not necessarily necessary keys.

If you deem necessary to inform other developers about the unnecessaryness of your values, you'll use theunnecessary="true" attribute.

In some exotic projects, or projects led by exotic architects, you might need keys that are not necessary, which you'lldecorate with the necessary="false" attribute

It's worth mentioning that these attributes are available on your regular keys and values, AS WELL AS on the onescreated in the unlikely cases where you have a really big number of keys and values (say, more than four-ish).

Here is an example of the former case, and we'll leave it as an exercise for you to write an example of the latter:

<key necessary="false">some key</key>
<value unnecessary="true">some value</value>

One drawback of XML is that it uses a ridiculously large number of angle brackets, which is a concern that will hopefullybe addressed in Enterprise2™

Chapter 5: operations

Numeric operations
2 + 3;;; // 5
2 - 3;;; // -1
2 * 3;;; // 6
2 / 3;;; // 0.66666666 (see note below)
3 % 2;;; // 1 (mod)

var Money i = 2;;;
i += 1;;; // 3
i -= 1;;; // 1
i *= 1;;; // 2
i /= 1;;; // 2 (see note below)

2 > 3;;; // False
2 < 3;;; // True
2 == 3;;; // False
2 != 3;;; // True

Since floats take too much time to implement properly, and it's more importantto get Enterprise™ implementations out there, this guide will not dictate howfloat operations should behave. Therefore, as an example, all of these are fine:

2 / 3;;; // 0.66666666
2 / 3;;; // 0.67
2 / 3;;; // 0.7
2 / 3;;; // 1
2 / 3;;; // 0

Anything goes really, as long as you properly document the behaviour of yourimplementation.

String operations

Templates are too complicated, therefore Enterprise™ has only concat:

'abc' + 'def';;; // 'abcdef'

var String myString = 'foo';;;
myString += 'bar';;; // 'foobar'
Bool operations
!True;;; // False
!False;;; // True
True && True;;; // True
True && False;;; // False
False && False;;; // False

That's it. If you did logic in your CS degree you must be able to do ors,xors and everything else based on these two. If you didn't, you'll probablynot need it anyway.

List access

Lists start at index 1. You can easily access list items:

var List Money ns = [7, 8, 9];;;
ns[1];;; // 7
ns[2];;; // 8
ns[3];;; // 9
O1Type access

You can easily access o1Type items:

var O1Type Money grades = {john: 6, mary: 5};;;
grades['john'];;; // 6
grades['mary'];;; // 5

Chapter 6: Disruptive libraries

For the sake of simplicity Enterprise™ doesn't have a standard lib. Insteadyou'll include functionality using disruptive libraries – dl for short.There is no package manager or way to create your own lib. This is for yourown good. Enterprise™ guarantees the qualityand security in all disruptive libraries. Check some examples:

com.disruptive.string.manager.dlStringManager
import disruptive library com.disruptive.string.manager.dlStringManager;;;

length('hello');;; // 5
split('hello');;; // ['h', 'e', 'l', 'l', 'o']

With these 2 basic functions you can do anything. Substring? No problem:

import disruptive library com.disruptive.string.manager.dlStringManager;;;
import disruptive library com.disruptive.list.manager.dlListManager;;;

// inside main of course
var String hello = '';;;
var String helloWor = 'Hello World';;;
var Money i = 0;;;
unnecessary var Money j = 0;;;

var List String hWList = split(helloWor);;;
// To avoid collision with dlStringManager.length
while(i < dlListManager.length(hWList)) {
  // The +1 is necessary since lists start at index 1
  hello += hWList[i + 1];;;
  i++;;;
}
com.disruptive.list.manager.dlListManager
import disruptive library com.disruptive.list.manager.dlListManager;;;

length(['a']);;; // 1
push(['a'], 'b');;; // ['a', 'b']

This should be enough. Concat? Easy:

import disruptive library com.disruptive.list.manager.dlListManager;;;

// inside main of course
var List String chars1 = ['a', 'b'];;;
var List String chars2 = ['c', 'd'];;;
var Money i = 0;;;

while(i < length(chars2)) {
  push(chars1, chars2[i + 1]);;;
  i++;;;
}
com.disruptive.o1type.manager.dlO1TypeManager
import disruptive library com.disruptive.o1type.manager.dlO1TypeManager;;;

keys({name: 'John'});;; // ['name']
values({name: 'John'});;; // ['John']

Chapter 7: Control structures

To avoid those pesky functional programmers to take over, Enterprise™ has noiterators. No higher order whatever. No LGADBTS. You can do everything withifs and whiles. As a wise Enterprise™ developer once said:

"You can do anything with any language."

while
while(condition) {
  // code
}
if
if(condition) {
  // code
}

Implementations

Why learning Enterprise™?

Check the trends.

Bye bye Java.

Check the opportunities.

https://www.linkedin.com/jobs/search/?location=Worldwide&keywords=Enterprise™ programming language

DDD - The book

The book Disruption Driven Development – Mastering Enterprise™ – is in themaking. Our sales website will be live soon!

Roadmap

  1. Automatic unnecessary classes generator.
  • business,firm, company, corporation, enterprise等的区别 1)company是商界的任何一个从事商业的企业,可以是独资、合资或是股份有限公司。一般用company是针对的是某一个特定的公司。例如说“我们公司”这句话英文就该说“Our company”而不说“Our firm”,更不说“Our enterprise”。   2)firm是任何的一个企业,

  • 关于Windows 的安装光盘版本很多种,很多人不知道选择哪些。 Ultimate 旗舰版,VISTA开始有了这个级别,是最全最高级的,一般程序开发的电脑,玩游戏的电脑,建议用它,不过对配置稍有一些要求 Enterprise 企业版,主要是在企业方面有专有的优化和集成,主要用于服务器 Home 家庭版,只有一些娱乐,办公方面的基础,主要重在界面好看,非性能方面的版本,玩游戏的人,不推荐这个版本 H

  • 最近写论文总是纠结于很多近义的英文词汇的区别,头大。于是从网上找到了一些辨析如下。 firm firm是任何的一个企业,可以是独资、合资或是股份有限公司。firm和company相比之下概念更广泛,一般来说,对一般企业的总称用firms多于companies。多指商行或两个(或两个以上)的人共同经营的商业机构,合伙商店,也指公司。 firm可大可小,大至航空公司小至小商店。如:a machiner

 相关资料
  • 借助 FuelWise™ 补充能量助手,在训练课期间保持活力。FuelWise™ 提供三项功能,提醒并帮助您在长时间训练期间补充能量和保持足够的能量水平。这些功能包括智能碳水提示、手动碳水提示和饮水提示。 对于任何要求严格的耐力型运动员来说,在长时间运动期间保持足够的能量水平和水分供给至关重要。为了保持最佳状态,您需要在长跑或训练课过程中定时为身体补充碳水化合物和饮水。借助碳水提示和饮水提示这两个

  • 借助 FuelWise™ 补充能量助手,在训练课期间保持活力。FuelWise™ 提供三项功能,提醒并帮助您在长时间训练期间补充能量和保持足够的能量水平。这些功能包括智能碳水提示、手动碳水提示和饮水提示。 对于任何要求严格的耐力型运动员来说,在长时间运动期间保持足够的能量水平和水分供给至关重要。为了保持最佳状态,您需要在长跑或训练课过程中定时为身体补充碳水化合物和饮水。借助碳水提示和饮水提示这两个

  • Skype™     何谓 Skype 事前准备 联系人名单 如何通话 所有拨打记录 其他机能 需付费的机能

  • corevidence™是一款以saas模式发布的安全工具,它提供了web应用程序评估,漏洞评估,VoIP安全评估,Web 恶意代码监控,Web站点监控等服务。

  • MySQL Enterprise 是开源数据库服务器——MySQL的企业版(商业软件),是在开源版的基础上增强了一些企业应用的特性,例如监控等,还提供一些性能优化等工具。

  • Enterprise Architect是一款计算机辅助软件工程(CASE)工具,用于设计和构建软件系统、业务流程建模及更多通用的建模。 EA并不仅仅是一个UML画图工具那么简单,它对整个项目开发过程有着非常好的支持。 比较亮点的功能: 1.UML建模--支持UML2.1 2.代码工程--按图生成代码,导入原有的代码成为UML图 3.项目管理程序--包括项目计划,任务进度,问题集等 4.文档生成和